2013-05-21 27 views
0

想象一下sites-enabled的幾個可用於/etc/apache2/sites-available。 (僅基於Debian的發行版,像這樣工作。)更改php錯誤報告以僅隱藏特定網站的警告

是否有可能從特定站點靜音從PHP腳本warning的消息,不接觸實際htdocs

通常有一對夫婦的解決方案,實現成才相關:

  1. 添加error_reporting()指令如error_reporting(E_ERROR);到執行的腳本。
  2. .htaccess文件中設置php_flags像這樣:php_flag display_errors off
  3. 使用ini_set內部腳本:
    ini_set('display_errors', 'Off');
    ini_set('display_startup_errors', 'Off');
    error_reporting(0);
  4. 前面加上@到拋出警告或錯誤的功能。
  5. 變化php.ini居然說
    error_reporting = E_ALL^E_WARNING
    display_errors = 1

然而,這些都意味着觸及的htdocs或者具有全局應用的變化。想象一下htdocs是以只讀方式掛載的。我將如何壓制某些網站的警告(或通知)?

我假設Debian/Ubuntu有a2ensite特定配置的原因,我希望我可以改變這些。示例「站點可用」配置中有一個log_level指令,但是這會處理記錄的消息數量。不是由php腳本輸出的消息。

手動添加php.iniapache2.confhttpd.conf中的部分也可以使用。如果可能。

參見:

+0

*通過配置的方式這樣做*可能在這裏關閉話題。然而,它看起來都是開源軟件,所以如果經過更多的研究後發現沒有相關的配置選項,修改代碼以添加它們應該是可能的 - 並且*特定的*遇到的問題將是主題。 –

回答

1

您可以控制很多的.htaccess文件內PHP的配置選項,它會給你控制特定的目錄。一般格式爲:

php_value <config_key> <config_value> 

,或者對於布爾值:

php_flag <config_key> <on|off> 

在你的情況,這會是:

php_flag display_errors off 
+0

感謝您的評論。雖然我不夠具體,但我實際上正在尋找一種方法來使用我的配置文件來完成此操作。我不想觸摸htdocs目錄內的任何內容,就好像它是隻讀的。我會擴展我的問題,但一些人將它標記爲脫離主題,所以[我將它移到Serverfault](http://serverfault.com/questions/509559/change-php-error-reporting-to-隱藏的警告 - 爲特定的站點,僅-debianubunt)。 – Redsandro

+0

另外,我想顯示錯誤但不是警告。我怎麼用'.htaccess'來做到這一點? 'display_errors off'隱藏了一切。 – Redsandro