IIS 站台 PHP 顯示 500 錯誤訊息內容

如何讓 IIS 底下的 PHP 顯示錯誤內容 (500 Error)

今天在 IIS 上安裝的 PHP 發生了錯誤,一直出現”500-內部伺服器錯誤”,這樣會看不到正確的錯誤內容。

如何讓 IIS 底下的 PHP 顯示錯誤內容 (500 Error)

想要看到完整的錯誤內容,只要調整兩個地方就行。

調整php.ini

開啟 PHP 安裝目錄底下的 php.ini 檔案,將「display_errors = Off」改為「On」

調整php.ini

調整 IIS 顯示錯誤內容

在 IIS 的站台設定找到「設定編輯器」。

在IIS的站台設定找到「設定編輯器」

接著下拉找到「system.webServer/httpErrors」。

調整IIS 顯示錯誤內容

接著在 errorMode的值選擇「Detailed」,這樣就可以了。

設定完成後,在右邊按「套用」。

這時候再重整原本的頁面,就可以看到剛剛的錯誤了。

顯示錯誤要注意的風險

在 IIS 上預設顯示錯誤只是本機下才會顯示,若是在公開網路上則會隱藏,這是避免錯誤訊息在公開網路上被看到,引發資安攻擊的問題。
這次的修改是將錯誤公開顯示在網路上,若要這樣調整是需要考量資安問題的,能避免就應該避免。
若真的要在公開網路上顯示錯誤內容,建議調整設定後,一次性的顯示錯誤,了解錯誤內容之後,就將 IIS 的設定改回限定本機顯示,這樣是比較安全的做法喔。

相關學習文章

如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝

加入社團一起討論

關注我的 IG

4 thoughts on “如何讓 IIS 底下的 PHP 顯示錯誤內容 (500 Error)

      1. 還是不行耶
        我compilation debug=true/false, customErrors mode=On/Off
        各種組合都試了
        顯示General failure根本也沒什麼幫助

        1. 通常在 .Net 要顯示 IIS 的錯誤,不需要調整 IIS 設定,只要調整 web.config 就可以了
          設定 compilation debug=”true” 與 customError = off 就可以了
          有看到調整完的結果顯示剖析器錯誤,那樣就表示有顯示錯誤內容了

          如果你還有問題,或是要貼畫面給我看,你可以加我 line 好友 https://lin.ee/hhe0FQz ,貼畫面給我看一下

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

15 − eleven =


The reCAPTCHA verification period has expired. Please reload the page.