2008-09-15 107 views
4

我想知道是否有人知道配置apache返回靜態HTML頁面的方法,如果它(Apache)能夠確定PHP已經死亡?這將爲開發人員提供一個優雅的解決方案來顯示錯誤頁面,而不是(最壞的情況)應該執行的PHP頁面的源代碼。當PHP失敗時Apache返回

謝謝。

回答

8

只有當apache配置不正確才能處理php文件時,PHP源代碼纔會顯示。也就是說,當一個正確的處理程序尚未定義。

出現錯誤時,顯示的內容可以在php.ini中配置,主要是display_errors變量。應該將其設置爲關閉並在生產環境中啓用log_errors。

如果php實際上死了,apache將返回適當的HTTP狀態代碼(通常是500)與由ErrorDocument指令定義的頁面。如果它沒有死,但是陷入了一個循環,就我所知,沒有什麼可以做的。

您可以爲不同的錯誤代碼指定不同的頁面。

3

我會假設,這通常會導致一個500錯誤,並且可以配置阿帕奇500處理器,顯示一個靜態頁面:

的ErrorDocument 500 /500error.html

你也可以閱讀有關錯誤處理程序on apaches documentation site

1

真正的問題是PHP致命錯誤不會導致Apache返回500代碼。但您可以使用set_error_handler()來處理除​​和E_PARSE之外的錯誤。

0

有2種方式給用戶PHP和apache。 1.將PHP安裝爲Apache模塊:這種方式php執行是apache進程中的一個線程。所以如果PHP執行失敗,Apache進程失敗。沒有後備戰略。 2.將PHP安裝爲CGI腳本處理程序:這樣apache將爲每個請求啓動一個新的PHP進程。我PHP的執行失敗,Apache會知道,並可能有辦法來處理錯誤。無論您安裝PHP的方式如何,當PHP執行失敗時,您都可以在php.ini文件中處理錯誤。

相關問題