我正在使用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?
答案 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并再次运行。