编辑:
我已完成重复答案中建议的所有内容,但没有任何作用。这是我的PHP信息:
这是nginx和stderr消息的特定问题,并不是通用的“如何打开PHP错误报告”问题。
开发时,每当我在PHP中使用拼写错误或只是编程错误时,我的浏览器中都会出现空白页面;)。我必须查看原始nginx错误日志文件以查看致命错误并找到它们所在的行号,这让我非常讨厌。我似乎无法找到如何让nginx在浏览器中显示PHP致命错误。这是我的nginx配置的相关部分:
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-FPM conf:
我的PHP-FPM池配置:
我的PHP-FPM php.ini:
如果有人能说明我能做些什么来表达这些错误,我会很高兴!
答案 0 :(得分:0)
尝试在pool config中将catch_workers_output设置为yes:
将worker stdout和stderr重定向到主错误日志中。如果没有设置,stdout和 ;根据FastCGI规范,stderr将被重定向到/ dev / null。 ;注意:在高负载环境中,这可能会导致页面出现一些延迟 ;处理时间(几毫秒)。 ;默认值:no catch_workers_output = yes
如果这不起作用,您可能会遇到此错误: