目前我正在试验Nginx。 我使用通过repo安装的最新版本工作。 Nginx独立版一切正常。 然后我通过源代码安装了PHP 5.5.1,我可以运行不同的版本,而不是生产webserver和php版本。 (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 [...]
所以我不知道为什么会出现这两个错误。第一个当然是改变了系统;功能不可用。
所以我的主要问题是:为什么我的代码在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']),
答案 0 :(得分:0)
问题解决了。 PHP通过源重建并使用最新版本(5.5.2)。