阻止调用error_reporting()和/或ini_set('display_errors','On')来覆盖php.ini设置

时间:2011-05-18 20:18:03

标签: php error-reporting

我的php.ini文件中有这个设置:

error_reporting = E_ERROR|E_PARSE|E_CORE_ERROR|E_COMPILE_ERROR

但我仍然每分钟在错误日志中收到数千条NOTICE和WARNING条目。我当然意识到我会更好地处理这些错误,但这不是我的代码,我没有得到报酬,我只需要摆脱那些胖的error_log文件(每天Gbs)。

我搜索了代码并删除了所有error_reporting()次调用,这样做了但是,有没有办法禁止error_reporting()覆盖php.ini设置?

我是否还可以阻止对ini_set('display_errors')的调用覆盖php.ini设置?

3 个答案:

答案 0 :(得分:3)

  

有没有办法禁止error_reporting()覆盖php.ini设置?

可能。

如果您在Apache下使用mod_php(或通过FPM使用FastCGI),您可以使用php_admin_value and php_admin_flag 强制某些INI设置,使ini_set成为error_reporting无法覆盖。

不幸的是,除了disable_functions之外,我不知道中间{{1}}的方法 - 但每次使用时都会抛出PHP警告。

(作为旁注,我发现很奇怪开发人员会在生产中设置错误报告级别并且仍然会产生如此大量的日志。)

答案 1 :(得分:2)

您可以尝试disable_functions php.ini设置并关闭error_reporting()ini_set()。但是,COMPLETELY会禁用它们,所以如果你需要在运行时更改error_reporting以外的设置,那么你就是SOL。

答案 2 :(得分:0)

根据以下页面,PHP引擎设置何时何地可以设置配置选项。没有办法以编程方式阻止它:

http://www.php.net/manual/en/configuration.changes.modes.php http://php.net/manual/en/errorfunc.configuration.php