首页 > 解决方案 > 如何通过php.ini配置过滤掉通知

问题描述

最近我们将 webapp 的 PHP 版本从版本 5.[something] 迁移到 7.2,并且我们的 apache2php.ini设置为避免在服务器和浏览器中记录日志。有人告诉我,在迁移之前设置工作正常,但现在到处都出现了通知。

这是设置:

error_reporting = E_ALL & ~E_NOTICE

我努力了

error_reporting = E_ALL ^ (E_DEPRECATED & E_NOTICE)

也,无济于事。没有.htaccess文件覆盖设置,当我将error_reporting变量设置为不同的值时,应用程序会报告 error_reporting 状态的变化,只是当我指定我不想要 E_NOTICE 时,设置不起作用。

这是处理错误的配置片段:

display_errors = On
;error_reporting = E_ALL ^ E_DEPRECATED
;error_reporting = E_ALL ^ (E_DEPRECATED & E_NOTICE)
;error_reporting = E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR
error_reporting = E_ALL & ~E_NOTICE
;E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE

我们希望避免在服务器和浏览器中记录通知。关于什么可能是错的任何想法?

谢谢!

标签: phperror-handlingconfigurationnotice

解决方案


我们设法解决了这个问题,我们的一个库(PEAR 的 cache-lite)有一行代码以编程方式/usr/share/php/Cache/Lite.php在第 25 行的文件中设置日志记录代码,这里是

error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);

我们将其注释掉,现在一切正常。谢谢大家!


推荐阅读