PHP FPM为所有PHP错误返回HTTP 500

时间:2010-02-09 05:57:37

标签: php nginx error-reporting

我正在使用PHP-FPM运行nginx。我处理php文件的nginx配置如下所示:

location  ~ \.php$ {
            set $php_root /home/me/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }

现在,我有一个简单的php文件:

<?php
     ech "asd"
     asd""
?>

是的,有明显的错误。当我尝试访问php文件,而不是跟踪语法错误时,我总是得到一个HTTP 500内部服务器错误。我尝试使用error_reporting(-1);但仍然总是返回HTTP 500.我如何让PHP打印确切的错误而不是返回通用HTTP 500?

7 个答案:

答案 0 :(得分:34)

尝试在php.ini中找到以下一行:

 display_errors = Off

然后点亮

答案 1 :(得分:8)

要发布更完整的答案,我使用了php.ini的生产版本,其中display_errors = Off。我现在所做的不是全局打开,而是对于需要报告错误的文件,我在文件的开头使用ini_set('display_errors', 'On');

答案 2 :(得分:5)

我也遇到了这个问题,并在display_errors = Off中设置了php.ini,但它不起作用。然后我在php[display_errors]=off中找到了php-fpm.conf,它将覆盖php.ini的值,并且有效。

答案 3 :(得分:1)

显示错误只会影响错误打印到输出的事实。

如果您启用了日志错误,则除非显示已关闭,否则日志中仍会丢失错误,这不是预期的行为。

预期的行为是,如果启用了日志,则会发现错误。如果显示已打开,则在屏幕/输出上发现错误。如果两者都在错误上都可以找到。

当前版本有一个错误的错误。

答案 4 :(得分:1)

对于Ubuntu 12.10,在php-fpm-pool-config文件中:

php_flag[display_errors] = on

在php.ini文件中:

display_errors = On

答案 5 :(得分:0)

如果从Remi repo php72安装。默认的用户和组与apache |

转到您的www.conf文件,找到/etc/opt/remi/php72/php-fpm.d/www.conf

并更改

user=nginx
group=nginx

在重新启动php fpm之前

systemctl restart php72-php-fpm

CENTOS REMI PHP7.2

答案 6 :(得分:0)

您可以通过以下方式显示错误:转到php.ini并找到display_errors,您应该看到display_errors = Off,只需将Off替换为On,重新启动php并再次运行。