2011-05-18 97 views
3

我在php.ini文件中有这样的设置:防止从覆盖php.ini设置调用error_reporting()和/或函数ini_set( 'display_errors设置', 'ON')

error_reporting = E_ERROR|E_PARSE|E_CORE_ERROR|E_COMPILE_ERROR 

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

我通过代码搜索,并删除所有error_reporting()调用,并做了诀窍,但是,有没有办法禁止error_reporting()重写php.ini设置?

我是否也可以防止重写php.ini设置调用ini_set('display_errors')

+1

搜索和替换? – Dani 2011-05-18 20:20:00

+0

正如我所说,那就是我所做的。 – AJJ 2011-05-18 20:40:07

回答

3

有没有办法拒绝从重写php.ini设置error_reporting()?

也许吧。

如果您使用mod_php的Apache下(或通过FPM FastCGI的),你可以在这样一种方式,ini_set将无法​​清除使用php_admin_value and php_admin_flag某些INI设置。

不幸的是,我不知道有一种方法去除disable_functions以外的中性error_reporting - 但是这会在每次使用时都会抛出PHP警告。

(作为一个方面说明,我觉得很奇怪,一个开发者在生产设置错误报告级别,仍然是生产日志这么高的音量。)

+0

是的,我正在使用mod_php,我不知道,我会放弃它。 – AJJ 2011-05-18 20:44:41

+0

这些错误主要是由外部库添加到XML和RSS创建等主要代码中引起的,所以它们为目录(商店)中的每个条目都会产生错误,因此会产生错误号。从条目判断,大多数是未定义的变量,可能是由于代码旨在运行在不同的环境中。 – AJJ 2011-05-18 20:53:44

2

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