用Nginx和php-fpm来压制PHP错误

尽我所能,我不能禁止从PHP显示错误消息(使用php-fpm)。

相关文件;

/etc/php5/fpm/php.ini:display_errors = Off /etc/php5/fpm/pool.d/www.conf:php_flag[display_errors] = off /etc/php5/fpm/pool.d/www.conf:php_admin_flag[display_errors] = off /etc/php5/cli/php.ini:display_errors = Off 

当我打电话给phpinfo()输出如下[图片作为链接,因为这是我的第一篇文章,因此没有足够的声誉,把他们内联,对不起!

/imgs/4ttGt​​.png /imgs/4LAah.png

上面显示configuration文件path为/etc/php5/fpm ,加载configuration文件为/etc/php5/fpm/php.ini 。 第二个图像显示display_errorsdisplay_startup_errors Off

这表明这些设置已被正确设置,但加载一个错误的页面导致错误的页面,例如;

未知 :preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback代替行651上的/path/to/file.php ****未知 :preg_replace():/ e修饰符不推荐使用,而是使用preg_replace_callback代替/651行的path/到/ file.php

(格式如上,所以HTML格式正在被应用)

我也尝试设置ini_set("display_errors", 0); 甚至error_reporting(0); 无济于事。

另外,编辑添加;

 # php5-fpm -i | grep error display_errors => Off => Off display_startup_errors => Off => Off error_append_string => no value => no value error_log => /var/log/php_err.log => /var/log/php_err.log error_prepend_string => no value => no value error_reporting => 22527 => 22527 html_errors => Off => Off ignore_repeated_errors => On => On log_errors => On => On log_errors_max_len => 1024 => 1024 

我错过了什么?

版本如下;

Debian 8 Jessie

PHP 5.6.30-0 + deb8u1

Nginx 1.6.2

这是普通的PHP还是你运行某种框架的代码?

最近的框架在dynamic重新configuration错误报告和/或注册一个自定义的error handling程序是相当普遍的,所以也许你的程序中的某些东西会重新configuration它?