在浏览器中显示Nginx的致命错误

在开发过程中,每当我在PHP中创build一个致命错误时,我的浏览器中都会出现空白页,或者只是我的错误编程;)。 这是非常烦人的,我必须查看原始nginx错误日志文件,看到致命的错误,并find他们的行号。 我似乎无法find如何使Nginx在浏览器中显示PHP致命错误。 这里是我的nginxconfiguration的相关部分:

location @fpm { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_NAME index.php; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_param PATH_INFO $path_info; } 

以下是我的错误日志中显示的一个示例错误,然后导致一个空白的浏览器页面:

 2014/01/04 14:53:52 [error] 20082#0: *403 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot redeclare class ClassName in FilePath on line 356" while reading response header from upstream, client: 192.168.1.10, server: servername, request: "GET URLPATH HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "host", referrer: "referer" 

这是我的PHP信息:

在这里输入图像说明

这是我的PHP-FPM conf:

http://pastebin.com/QkCTbBYj

而我的PHP-FPM池conf:

http://pastebin.com/TZfZ8d7G

而我的PHP-FPM php.ini:

http://pastebin.com/RsXRxduf

如果有人能说出我能做些什么来让这些错误出现,我会很乐意的。

在您的PHP-FPM池configuration取消注释

第463行php_flag[display_errors] = off

并将其更改为

php_flag[display_errors] = on

不要忘了重新启动php-fpm

我想我们的设置display_errors不足以显示nginx的错误。

我解决这个问题的最后一招是closuresfastcgi_intercept_errors:

fastcgi_intercept_errors off;

通常这是默认情况下,例如在fastcgi_params。