Nginx Php-fpm在任何地方都没有记录500错误

时间:2014-12-12 21:39:10

标签: nginx php

nginx或php-fpm也没有报告错误500输出,事实上500响应是在访问日志上而不是在nginx错误日志上。该脚本在我的开发环境中运行正常。

nginx version: nginx/1.6.2  
PHP 5.5.19 (fpm-fcgi)

试过这个

catch_workers_output = 1

重启所有内容,仍无法正常工作

nginx访问日志显示:

x.x.x.x - - [12/Dec/2014:19:25:08 -0200] "GET /merchant/customer/mobile/data?sEcho=1&iColumns=3&sColumns=%2C%2C&iDisplayStart=0&iDisplayLength=10&mDataProp_0=0&sSearch_0=&bRegex_0=false&bSearchable_0=true&mDataProp_1=1&sSearch_1=&bRegex_1=false&bSearchable_1=true&mDataProp_2=2&sSearch_2=&bRegex_2=false&bSearchable_2=true&sSearch=&bRegex=false&_=1418418256370 HTTP/1.1" 500 589 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

请注意500错误,该错误应该在error.log上,并且php跟踪会在其他错误上发生。

任何线索?

3 个答案:

答案 0 :(得分:3)

当禁用PHP display_errors时,PHP错误可能会返回Nginx 500错误。

看看你的php-fpm日志,我确定你会在那里找到错误。使用CentOS 7:

tail -f /var/log/php-fpm/www-error.log

您最终可以显示PHP错误。在/etc/php.ini中,更改:

display_errors = Off

到:

display_errors = On

希望它有所帮助。

答案 1 :(得分:1)

验证php-fpm服务正在运行

sudo service php-fpm status

这将显示可以执行php的主机名。

接下来编辑php.ini以显示错误。这将在页面上显示错误...以便于诊断

sudo vim /etc/php.ini

然后点击键[/]并输入

display_errors

按键[i]用户箭头键和退格键设置display_errors = on

然后重启php-fpm服务

关于系统类型redhat / centos等。

sudo service php-fpm restart

答案 2 :(得分:0)

如果它可以帮助其他人(Google将我带到了这里),我也会遇到类似的问题(尽管在Apache中而不是nginx)。

我安装的一个较旧的应用程序给出了500个错误,却没有任何输出,尽管所有可能的错误日志记录设置都变成了最详细的级别。

事实证明,问题出在有争议的error-control operator,“ @”。正如文档中的红色警告框所示,无论您的日志记录有多详细,如果@前缀命令导致PHP因拼写错误或由于不可用而停止运行(例如,因为您忘记安装关键版,像php-mysql这样的模块),PHP将完全退出,而没有任何指示。

因此,如果发现自己出现500错误且没有日志,请检查您的代码库中是否有“ @”符号。