使用 Nginx 和 php-fpm 抑制 PHP 错误

使用 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()输出时如下[图像作为链接,因为这是我的第一篇文章,因此没有足够的声誉将它们内联,抱歉!];

https://i.stack.imgur.com/4ttGt​​.png https://i.stack.imgur.com/4LAah.png

上图显示配置文件路径为 ,/etc/php5/fpm已加载的配置文件为/etc/php5/fpm/php.ini。第二幅图显示display_errorsdisplay_startup_errorsOff

这表明这些设置已正确设置,但加载有错误的页面会导致出现错误页面,例如;

未知: preg_replace(): /e 修饰符已弃用,请改用 preg_replace_callback/路径/到/文件.php在线的651****未知: preg_replace(): /e 修饰符已弃用,请改用 preg_replace_callback/路径/到/文件.php在线的651

(格式如上,因此应用 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 杰西

PHP 5.6.30-0+deb8u1

Nginx 1.6.2

答案1

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

最近的框架经常会动态重新配置错误报告和/或注册自定义错误处理程序,所以也许你的程序中的某些东西会再次重新配置它?

相关内容