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

5q4ezhmt  于 12个月前  发布在  Nginx
关注(0)|答案(8)|浏览(139)

此问题已在此处有答案

How do I get PHP errors to display?(27个回答)
上个月关门了。
我用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?

x4shl7ld

x4shl7ld1#

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

display_errors = Off

然后让它

xoshrz7s

xoshrz7s2#

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

edqdpe6u

edqdpe6u3#

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

j9per5c4

j9per5c44#

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

php_flag[display_errors] = on

在php.ini文件中:

display_errors = On
368yc8dk

368yc8dk5#

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

zxlwwiss

zxlwwiss6#

显示错误只会影响是否将错误打印到输出。
如果打开了日志错误,则日志中仍然会缺少错误,除非关闭显示,这不是预期的行为。
预期的行为是,如果日志打开,则在那里发现错误。如果显示打开,则在屏幕/输出上发现错误。如果两个都是错误的,那么两个都是错误的。
目前的版本有一个错误,丧失了。

3gtaxfhh

3gtaxfhh7#

如果你从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

efzxgjgh

efzxgjgh8#

安装缺少的php模块对我很有效。

sudo apt install php7.2-curl
sudo systemctl restart php7.2-fpm

这解决了我的日志持久HTTP错误500我的PHP脚本.
因此,可以检查是否有任何应用程序可能需要正常工作的PHP模块丢失。

相关问题