
早上打開網站,畫面只剩一行字:
這個網站發生嚴重錯誤。
或是一片白、顯示 500 Internal Server Error。網站上的客人都看不到內容,很容易慌。
500 錯誤的意思是「伺服器執行程式時出錯了」,大部分是某個外掛、佈景主題或設定檔出問題。這篇照最常見的原因排好順序,一步一步檢查。
先判斷是哪一種畫面
- 「這個網站發生嚴重錯誤」:WordPress 自己攔截到的錯誤,通常是外掛或佈景主題的程式出錯。這種最好處理,WordPress 會幫你指出是哪一個。
- 伺服器的 500 Internal Server Error 頁面(白底黑字、主機商的錯誤頁):WordPress 可能根本沒有開始執行,常見原因是
.htaccess寫錯、檔案權限錯、PHP 設定有問題。 - 502、503、504:不是程式寫錯,而是伺服器忙不過來或逾時,要找主機商看主機資源。
另外看一下後台進不進得去,只有前台壞還是全部壞,可以縮小範圍。
第一步:看 WordPress 寄來的通知信
WordPress 5.2 之後有「復原模式」:外掛或佈景主題造成嚴重錯誤時,會寄一封信給網站管理員的 Email,告訴你是哪一個外掛出錯,並附上一個特別的登入連結。
我們在測試網站放了一個故意寫壞的外掛,實際看到的流程是:
- 前台:顯示「這個網站發生嚴重錯誤。」,HTTP 狀態碼是 500。這時還沒有寄信。
- 有人打開登入頁或後台:畫面多了一句「請檢查網站管理員電子郵件收件匣以取得相關說明」,這時才寄出通知信。
也就是說,前台出錯不會寄信,要等有人進到登入頁或後台遇到錯誤,WordPress 才會寄。網站壞了沒收到信,先自己打開一次登入頁。
通知信的標題是「《網站名稱》通知:網站遭遇技術性問題」,內容會寫:
- 是哪一個外掛或佈景主題出錯(例如「已啟用的其中一個外掛的錯誤(外掛名稱)」)。
- 出錯的檔案、第幾行、錯誤訊息。
- 一個進入復原模式的連結,1 天後失效。
點連結、登入之後,網站在你這個瀏覽器裡會暫停那個出錯的外掛,其他訪客看到的還是錯誤畫面。到「外掛」頁,出錯的外掛會用紅框標出來,寫著「網站進入復原模式期間,這個外掛無法正確載入並會遭到系統暫停」,下面有錯誤詳細資料。這時可以:
- 按「停用」,先讓網站恢復正常,再去找外掛的更新或替代品。
- 處理完後,點上方工具列的「結束復原模式」。
通知信要寄得出去
通知信寄到 設定 → 一般 裡的「網站管理員電子郵件地址」。如果這個信箱沒人在看,或主機根本寄不出信,就收不到。想另外寄到工程師的信箱,可以在 wp-config.php 加這一行:
define( 'RECOVERY_MODE_EMAIL', 'engineer@example.com' );主機寄信不穩的話,建議設定 SMTP,做法可以參考用 Gmail 收發公司企業信箱:寄件(SMTP)設定。
第二步:打開錯誤記錄
沒收到信、或錯誤不是外掛造成的,就要看錯誤記錄。用 FTP 或主機的檔案管理員,打開網站根目錄的 wp-config.php,在 /* That's all, stop editing! */ 這一行上面加入:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );WP_DEBUG_LOG設成true,錯誤會寫進wp-content/debug.log。重新打開出錯的頁面,再去看這個檔案的最後幾行。WP_DEBUG_DISPLAY設成false,錯誤不會顯示在網頁上。錯誤訊息裡有主機路徑,不要讓訪客看到。
wp-content/debug.log 預設是網址打得開的,查完問題記得把這三行刪掉,並刪除 debug.log。或是把記錄寫到網站目錄以外的地方,WP_DEBUG_LOG 直接填檔案路徑就可以:
define( 'WP_DEBUG_LOG', '/home/你的帳號/logs/wp-debug.log' );主機控制台(cPanel、HestiaCP、Plesk)通常也有「錯誤記錄」可以看,伺服器的 500 頁面(WordPress 沒開始執行的那種)要看這裡。
第三步:停用所有外掛
錯誤記錄指向某個外掛、或還是找不到原因,就先把外掛全部停掉:
- 用 FTP 或檔案管理員,把
wp-content/plugins資料夾改名成plugins-off。 - 重新打開網站。WordPress 找不到外掛資料夾,所有外掛等於停用。
- 網站好了,代表是某個外掛的問題。把資料夾名稱改回
plugins,到後台「外掛」頁,一個一個啟用,啟用到哪一個網站壞掉,就是它。
只懷疑某一個外掛的話,改那個外掛自己的資料夾名稱就好,例如 plugins/woocommerce 改成 woocommerce-off。
第四步:換回預設佈景主題
用同樣的方法,把 wp-content/themes 裡目前使用的佈景主題資料夾改名。WordPress 找不到佈景主題,會自動換成已安裝的預設佈景主題(例如 Twenty Twenty-Five)。所以平常最好留一套預設佈景主題不要刪。
網站因此恢復的話,問題就在佈景主題。最常見的是剛改過 functions.php:少了一個分號、括號沒有成對、同一個函式名稱宣告了兩次。在 functions.php 加程式碼的注意事項,可以看WordPress functions.php 實用程式碼整理。
第五步:.htaccess
伺服器直接顯示 500 頁面時,很常是 .htaccess 寫錯(例如加了主機不支援的設定):
- 把網站根目錄的
.htaccess改名成.htaccess-old。 - 網站能打開了,到 設定 → 永久連結,什麼都不用改,直接按「儲存設定」,WordPress 會重新產生一份乾淨的
.htaccess。 - 原本
.htaccess裡如果有自己加的轉址、快取設定,再一段一段加回去測試。
.htaccess 的寫法可以看.htaccess 用法大全。
第六步:記憶體不足、PHP 版本
- 錯誤記錄出現 Allowed memory size of ... bytes exhausted,就是記憶體不夠,處理方法請看WordPress 記憶體不足怎麼解決。
- 主機商升級了 PHP 版本後網站壞掉,通常是很久沒更新的外掛或佈景主題不支援新版 PHP。可以先在主機控制台把 PHP 版本暫時切回舊版,讓網站恢復,再把外掛、佈景主題更新到支援新版的版本,最後切回新版。
都試過了還是不行
- 重新上傳 WordPress 核心檔案:從官方下載同一個版本的 WordPress,覆蓋
wp-admin和wp-includes兩個資料夾(不要動wp-content和wp-config.php)。 - 檢查檔案權限:資料夾一般是 755、檔案 644。
- 把錯誤記錄的內容提供給主機商,請他們查伺服器端的記錄。
平常就做好的事
- 每天自動備份,而且確定備份還原得回來。
- 更新前先備份,一次不要更新太多個外掛,出問題才知道是哪一個。
- 管理員信箱要是有人在看的信箱,網站出事時才收得到通知。
延伸閱讀
- WordPress「更新失敗。回應不是有效的 JSON 回應」怎麼解決?6 個原因與處理方法
- WordPress 出現「You don't have permission to access」怎麼辦?403 錯誤的 6 個原因與解法
- Joomla 白畫面(空白頁)怎麼辦?從錯誤記錄到擴充套件衝突的完整排查順序
網站壞掉的時候,最需要的是有人知道怎麼查。正威網路行銷是 25 年經驗的基隆網頁設計工作室,網站管家年費包含每日備份、故障時協助還原,以及系統、外掛的更新,台北與全台客戶也歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。