我在VPS上運行我的網站。我可以爲LAMP創建1個實例。我想爲開發服務器和生產服務器上的錯誤報告設置不同的設置。錯誤報告的php ini設置
有什麼辦法可以在同一個php.ini文件中爲開發和生產定義兩個不同的設置嗎?
我想設置
error_reporting(-1);
發展服務器,
error_reporting(0);
生產服務器。
我在VPS上運行我的網站。我可以爲LAMP創建1個實例。我想爲開發服務器和生產服務器上的錯誤報告設置不同的設置。錯誤報告的php ini設置
有什麼辦法可以在同一個php.ini文件中爲開發和生產定義兩個不同的設置嗎?
我想設置
error_reporting(-1);
發展服務器,
error_reporting(0);
生產服務器。
在同一個php.ini
文件中不能有兩套配置。 但是,您可以在Apache
中有多個網站。
在每個站點中,您都可以配置環境相關設置。
例如,在prod.conf
:
php_value error_reporting 0
而且,在dev.conf
:
php_value error_reporing -1
您也可以扔在其他的東西一樣一樣,display_errors
和error_log
定義。 然後,您開啓生產服務器上的prod.conf
站點,開發一個dev.conf
。
你不能直接在php.ini中執行此操作。還有,你可以完成你想要的一些方法:
你可以直接使用設置在Apache虛擬主機的conf針對該虛擬主機明確設置所需的值。
您可以在.htaccess
文件中使用指令,一個用於您的實時應用程序,另一個用於您的開發應用程序。
您可以使用環境變量觸發您的應用程序設置正確的設置。在Apache配置或.htaccess中,將「APP_MODE」等環境變量設置爲「開發」或「生產」。然後您的應用程序代碼可以查找該var並相應地設置報告。例如,if (getenv('APP_MODE') == 'development') { error_reporting(E_ALL); }
你可以使用一個框架來爲你做這件事。例如,Zend Framework使用環境變量和ini文件的組合。
當我試圖編輯.htaccess文件時,它給我內部服務器錯誤。我在httpd.conf文件中爲我的項目目錄定義了AllowOverride All。我錯過了什麼? –
也許是語法錯誤或拼寫錯誤?你到底在做什麼?也許是一個權限錯誤?確保該文件可以被運行Apache的用戶讀取。 –
'<目錄「/家/網站/的public_html」> 選項所有多視圖 的AllowOverride所有 訂購允許,拒絕 從' –
當讀取ini文件時,php如何知道它是開發或生產服務器? – poncha
這就是我想要弄明白的。我知道有一種方法可以做到。但是,我不知道如何? –
您可以在** apache **網站上應用該配置而不是在php.ini中......這樣,您可以在apache中擁有兩組配置(2個網站),並且您基本上可以關閉另一個 - 我們可以創建 – poncha