2011-05-18 51 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。