修復 WordPress 連線失敗 HTTP 500 Internal Server Error 的 8 種維修方案

鷹眼觀察網站今天從中午開始就呈現無法連線的狀態,只要連上網站都會出現「HTTP 500 Internal Server Error」的錯誤提示,在經過一番系統檢查修復後已經重新上線,所以我特別將檢查和修復過程寫下筆記,提供大家日後也可作為參考。

工具人小小聲:因為今天要進實驗室跑研究,把手機丟在外頭忘了帶,結果一出來就看到大佬們狂CALL啊。

下面會依照最常發生問題、最簡易修復等因素,將最常見的 8 種系統檢測和修復的解決辦法依序表列,請大家逐一操作就能慢慢解決問題囉!

一、移除舊的 .htaccess 檔案

作為管理系統目錄下各種權限規則設置的一個文件,這個檔案如果設置錯誤,便會造成網路用戶無法正常連線網站。因此我們可以在 Linux 伺服器中,直接輸入下列指令將網站的舊 .htaccess 檔案名稱更改名稱,藉以形成檔案移除的假象:

sudo mv .htaccess .htaccess.old

在移除 .htaccess 檔案後,可以試著重新整理網站,看看是否解決了原本的連線失敗問題。如果可以解決,請記住要在後台的設定中,重新設定「固定網址」功能。

二、移除外掛程式和佈景主題

有時候網站會突然就發生無法連線的錯誤狀態,有可能是因為外掛程式(Plugins)或佈景主題(Themes)自動更新後,出現新程式碼沒有寫好所致的導致系統衝突。

我們可以試著將外掛程式移除,讓 WordPress 主程式不會被干擾到。

我一般建議直接將外掛程式的目錄名稱直接改名即可,形成被移除的假象。例如透過下列指令就能將 JetPack 外掛功能直接關閉(請在伺服器位置:/wordpress根目錄/wp-content/plugins/ 下執行):

sudo mv jetpack jetpack.old

你可以先一次把所有外掛通通移除,然後重新整理網站,看看是否解決了原本的連線失敗問題。如果可以解決,再逐一將外掛程式的目錄名稱慢慢改回正常狀態,在這個過程中請記住要隨時重新整理網站,以找出可能出錯的外掛程式。

三、增加硬碟空間容量、記憶體容量、MySql 記憶體以及 PHP 記憶體限制

無論是硬碟空間容量、伺服器記憶體容量、MySql 記憶體限制或是 PHP 記憶體限制過小,都可能造成 WP 網站無法連線,請先確認上述各項詳細資訊[i],以便找出解決方案。

如果是硬碟空間不足,可以刪除不必要的暫存檔案、把圖片重新壓縮。如果這樣做了後還是騰不出空間,可以和伺服器記憶體容量過小的解決方案一樣,直接在伺服器託管供應商上進行加購設定。

一般來說 MySql 的記憶體限制比較容易觀察,只要將伺服器重新啟動(Reboot)後立刻重新整理網站,如果恢復正常就有可能是先前 MySql 記憶體佔用過高導致的系統不穩定。可以試著刪減沒在使用的外掛程式,減少記憶體佔用,並針對「my.ini(my.cnf)」設定檔案的參數進行修改,找出最佳設定值(這無法用三言兩語帶過,請自行參考網路上的詳細介紹)。

如果是 PHP 記憶體容量不足,可以執行下面兩個方法:

  1. 在 WordPress 跟目錄下的「wp-admin」目錄中,新增一個「php.ini」檔案,寫入「memory = 128MB」指令。
  2. 在 WordPress 跟目錄下,修改「wp-config.php」檔案,新增下列指令:

define('WP_MEMORY_LIMIT','128M');

四、檢查 Apache 網頁伺服器是否正常工作

有時候會發生網站無法連線的錯誤,是因為 Apache 網頁伺服器出現異常無法正常提供服務,請參考《Linux 無法正常啟動、掛載 Apache 網頁伺服器造成連線失敗的檢查指令》這篇文章中的指令說明,就能快速檢查 Apache 伺服器目前的工作狀態。

五、檢查 WP-CONFIG.PHP 設定檔案

在 WordPress 根目錄下有一個 wp-config.php 設定檔案存有系統許多設定資訊,除了 MySQL 資料庫的帳號密碼資料以及各種資安保護設定[ii]外,還有許多指令都會影響到 WordPress 的正常運作。

請檢查 wp-config.php 檔案中是否有不常見的指令被錯誤使用,或是指令是否完整(包含左右括號、小數點、逗點、分號等),還有更常見的是「指令的順序」是否符合要求!

例如許多新增加控制指令,請務必放置在「/* That’s all, stop editing! Happy blogging. */」這行說明之上;有時候指令的位置放置不對,讓執行順序無法正確解析時也有可能導致系統崩潰。

六、檢查目錄、檔案的權限設定

如果 WordPress 目錄下的目錄或檔案使用了錯誤的權限設定,也可能導致網站無法正常工作。

請在伺服器供應商的 cPanel 圖形管理介面或是直接使用 SSH 登入伺服器後,逐一檢查 WP 個目錄和檔案的權限設定。目錄的預設權限是 755(寬鬆點可用 775),檔案的預設權限是 644(寬鬆點可用 664),可用「chmod」指令進行設定。

七、重新上傳 WP 核心檔案

在 WordPress 根目錄下有兩個目錄「wp-admin」和「wp-includes」是 WP 的重要系統檔案,如果裡面的檔案出現錯誤或遺失也可能導致你的網站無法正確工作。

你可以在 WordPress 官方網站(WP 檔案下載位置),下載最新版本的 WordPress 系統檔案,並挑出你需要的檔案再上傳更新到你的伺服器中(或是移除 wp-config.php 設定檔案和 wp-content 目錄後全部重新上傳)。

八、洽詢伺服器託管服務供應商以及專業網管人員

實際上真的出現完全無法連線,而且還找不出原因的狀況是可能的。

因此,要是你在執行上述 6 種方法後,依然不能解決「HTTP 500 Internal Server Error」連線失敗的錯誤狀況,我只能建議你尋求伺服器託管服務供應商或是專業網管人員的協助了。

延伸閱讀/推薦附錄:

  1. 常用 LINUX 進階指令與程式介紹
  2. WordPress教學:定期更新獨一密鑰與鹽認證(Authentication Unique Keys and Salts)加強資安防止破解入侵

分享您的想法

發佈留言

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