PHP-FPM:不会返回所有错误

时间:2013-07-14 16:02:59

标签: php nginx

我使用nginx 1.4.1和php 5.4.17与FPM。

我有一个简单的应用程序正常运行,直到我包含一个具有以下内容的文件:

class Config {
  const HELLO = array('WORLD');
}

当我使用php-cgi oder php在我的命令行上执行它时,我的PHP不会给我这个文件的任何错误。但是在线解析器告诉我类中不允许使用const的数组。 但是为什么nginx和php没有返回此错误?

这个应用程序的php-fpm池在unix套接字上运行,访问任何其他php文件或html文件工作正常。 catch_worker_output = yes已设置且display_errors设置为STDERR,因此nginx正在获取错误,因此我只需要查看nginx编写的错误日志文件。 我的访问日志为我提供HTTP状态200。

但我仍然得到一个空白页面,根本没有输出,nginx错误日志或php错误日志中没有错误,即使我的命令行工具在我测试该php文件时也不会给我错误。

我已将SCRIPT_FILE设置为我的位置块中的$ document_root& fast_cgi_script,用于服务器块的.php文件。

如果我把一些不存在的函数名称如“idonotexist(true);”然后我在浏览器上收到一个致命错误,告诉我该功能不存在。那么这里的问题是什么?

UPDATE :在我的服务器上运行此命令在控制台上没有返回任何内容,因此php代码没问题:

php -r "class Config { const HELLO = array('WORLD'); }"

但是在我的其他服务器上运行这个基于php-module的简单的apx apache我得到了这个:

PHP Fatal error:  Arrays are not allowed in class constants in Command line code on line 1
Fatal error: Arrays are not allowed in class constants in Command line code on line 1

所以我的nginx / php-fpm配置出了问题

UDATE 2 :我设法让命令行版本正常工作,将其添加到php.ini

error_reporting = 2147483647

而不是

error_reporting = 999999

但仍然通过nginx / php-fpm我得到一个空白页面。 我现在只是创建了一个test.php,只有那个Config类定义带有错误的const用法。命令行现在可以通过nginx / php-fpm打印正确的致命错误但没有任何内容。

0 个答案:

没有答案