尽管我尽力了,但我无法抑制 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_errors
和display_startup_errors
为Off
。
这表明这些设置已正确设置,但加载有错误的页面会导致出现错误页面,例如;
未知: 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 还是使用某种框架运行代码?
最近的框架经常会动态重新配置错误报告和/或注册自定义错误处理程序,所以也许你的程序中的某些东西会再次重新配置它?