【问题标题】:Nginx PHP (5.5.1) FPM strange errorsNginx PHP (5.5.1) FPM 奇怪的错误
【发布时间】:2013-08-13 20:17:21
【问题描述】:

目前我正在尝试使用 Nginx。 我使用通过 repo 安装的最新版本让它工作。 Nginx 独立运行一切正常。 然后我通过可以运行不同版本而不影响生产网络服务器和 php 版本的源安装了 PHP 5.5.1。 (出于测试目的,Nginx 在另一个端口上运行,然后是 80。)

一切都很顺利。编译 PHP 5.5.1 没有错误,安装它,启动 PHP-FPM 并更改 Nginx 配置以在需要时调用 PHP FPM。我的第一个测试网站与这个版本完美配合。然后我尝试运行我创建的另一个网站。为此,我只更改了文档根目录。

然后我得到了非常奇怪的错误:

PHP Fatal error:  Call to undefined function apache_request_headers() in [...]

是的,不是真正的错误...所以我删除了该功能以测试网站在删除功能时是否正常运行,该功能在 PHP-FPM/FastCGI 模式下不可用。

然后再次尝试时日志中显示另一个错误:

PHP Parse error:  syntax error, unexpected ''INSERT ' (T_ENCAPSED_AND_WHITESPACE) in [...]

注释掉这个变量后(仅用于测试)发生另一个错误:

PHP Parse error:  syntax error, unexpected end of file, expecting ')' in [...]

所以我不知道为什么会发生这 2 个错误。第一个当然是改变的系统;功能不可用。

所以我的主要问题是:为什么我的代码在 FPM 模式下导致 PHP 5.5.1 出现这些错误? 该网站在我的本地开发服务器(PHP 5.4 和 Apache)和生产服务器(Apache 2.2 和 PHP 5.4)上完美运行......我没有更改任何代码(除了 db 的配置文件等)。那么有人知道什么会导致这个问题吗?

如果您需要更多信息,尽管问!

编辑:

错误 1:

$sql = 'INSERT INTO ' . TABLE . ' 
(name) 
VALUES
("' . $name . '")
ON DUPLICATE KEY UPDATE name=VALUES(name)';

错误 2:

'TEXT' => text::parse($row['text']),

【问题讨论】:

  • 忽略 PHP 5.5.1 和 PHP 4 之间可能存在的差异。您可能在开发环境中遇到这些错误,它们只是被抑制或记录。抛出 error_reporting(-1); ini_set('display_errors', true);在您的开发环境中。
  • 我说的是 PHP 5.5.1 和 PHP 5.4。不是 PHP 4。设置 error_reporting(-1); ini_set('display_errors', true);。依然没有。完美运行。一切。
  • 抱歉,打错了。我的意思是5.4。 (由于某种原因,我无法编辑该评论)。 5.5 和 5.4 之间存在差异。能否给出第二个错误相关的代码?
  • "PHP 解析错误:语法错误,在 [...] 中出现意外的 ''INSERT' (T_ENCAPSED_AND_WHITESPACE)" 或 "PHP 解析错误:语法错误,文件意外结束,期待 ')' 在[...]”?
  • Charles 要求的是查看实际代码,而不是错误。您所说的问题看起来都像是代码生成的错误,与 FPM 本身无关。如果我们能看到代码,我们可能会提供更多帮助。

标签: nginx php


【解决方案1】:

问题解决了。 PHP 通过源代码重建并使用最新版本(5.5.2)。

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2011-03-12
    相关资源
    最近更新 更多