我使用PHP-FPM运行nginx。 我处理php文件的nginxconfiguration如下所示:
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?
尝试在您的php.ini
找到以下行:
display_errors = Off
然后开启
要发布更完整的答案,我已经使用了display.errors = Off的php.ini的生产版本。 而不是全局打开它,我现在要做的是,对于需要报错的文件,我使用ini_set('display_errors', 'On');
在文件的开头。
此外,我遇到了这个问题,我在php.ini
设置display_errors = Off
,但它不起作用。 然后,我在php-fpm.conf
找到了php[display_errors]=off
,它将覆盖php.ini
的值,它可以工作。
显示错误只会影响错误打印输出的事实。
如果您打开了日志错误,则日志中的错误仍然会丢失,除非显示是关闭的,这不是预期的行为。
预期的行为是如果日志是打开的,在那里发现错误。 如果显示打开,则在屏幕/输出上发现错误。 如果两者都在erros上都可以找到。
目前的版本有一个缺陷的错误。
对于Ubuntu 12.10,在php-fpm-pool-config文件中:
php_flag[display_errors] = on
在php.ini文件中:
display_errors = On