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

ErJ*_*Jab 21 php error-reporting nginx

我正在使用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;
        }
Run Code Online (Sandbox Code Playgroud)

现在,我有一个简单的php文件,如下所示:

<?php
     ech "asd"
     asd""
?>
Run Code Online (Sandbox Code Playgroud)

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

You*_*ung 35

尝试在您的内容中找到以下行php.ini:

 display_errors = Off
Run Code Online (Sandbox Code Playgroud)

然后开启

  • 不要忘了在那之后重置php-fpm.(sudo服务php-fpm重启) (6认同)

ErJ*_*Jab 9

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


yar*_*nli 5

我也遇到了这个问题,然后我就开始了display_errors = Off,php.ini但它不起作用.然后我找到了php[display_errors]=offin php-fpm.conf,它将覆盖它的值php.ini并且它有效.