- 錯誤型別:
- HTTP錯誤
- 錯誤名稱:
- HTTP服务不可用
- 英文名稱:
- HTTP Error 503
- 錯誤描述:
- 遇到503错误时,表示相关服务器不可用。 这可能是因为服务器繁忙了,或者它处于维护状态。 与其他类似的错误代码不同,503表示您的网站已联机并正在运行,但目前无法访问。
- 錯誤變體:
- 503 Service Unavailable503 Service Temporarily UnavailableHTTP Server Error 503Error 503 Service Unavailable
診斷伺服器錯誤有點像照顧一隻憤怒的貓–你永遠無法確定問題的起因或發生過程。有一長串的潛在原因需要解決。即使你解決了問題,也不能完全確定是什麼起了作用。
HTTP 錯誤“503 Service Unavailable”通常意味著伺服器資源耗盡。但為什麼會出現這種情況並不總是很清楚。
在大多數情況下,503 狀態程式碼的出現是因為 WordPress 佔用了太多記憶體,或者是因為您的託管服務出現了意料之外的問題。要解決這個問題,您可能需要減少網站的記憶體使用量,或者升級主機賬戶的資源。
不知道從何下手?不用擔心!在本快速指南中,我們將向您介紹如何解決過載問題,讓您的網站恢復到最佳狀態。
什麼原因導致503 Service Unavailable錯誤?
503 錯誤程式碼實際上並不是 WordPress 特有的。事實上,它可能在 WordPress 啟動之前就出現了。那麼,到底是怎麼回事呢?
就像電腦上的應用程式一樣,網站的執行需要一定的資源。例如,它需要記憶體、處理能力和硬碟空間。無論您使用哪種型別的託管服務提供商,情況都是如此。
如果您的伺服器在這些資源上開始執行不足,就可能難以處理訪問者的請求。最終結果是什麼?您的網站將暫時不可用。
有鑑於此,以下是 503 錯誤資訊最常見的原因:
- 您的網站正在消耗大量資源:例如,這可能是因為外掛或主題操作不當,需要更多記憶體。
- 動態流量異常大:如果有很多人同時訪問你的網站,你的資源消耗速度就會比正常情況下快很多。好訊息是,您可以避免緩慢的載入時間,並提前為更高的流量水平做好準備。
- 你的網站伺服器可能遇到了困難:如果你的虛擬主機服務最近升級了軟體,你的網站可能沒有得到正確的配置或優化。您的虛擬主機可能需要重新啟動一個或多個伺服器程序,以恢復正常效能水平。
無論根本原因是什麼,HTTP 503 錯誤都不能忽視。除非是主機層面的問題,否則該錯誤不會自行解決,而且很可能會給您的網站和訪客帶來重大問題。
503錯誤變體
503錯誤可以通過很多方式顯示出來。 但是,幾乎每個變體都伴隨著503程式碼,因此很容易識別。
以下是您可能遇到的一些變體,具體取決於您的伺服器配置和瀏覽器:
- 503 Service Unavailable
- 503 Service Temporarily Unavailable
- HTTP Server Error 503
- HTTP Error 503
- Error 503 Service Unavailable
無論您遇到的報錯碼是什麼樣子,都意味著您需要在它對使用者產生負面影響之前快速處理。
503錯誤為何會給網站帶來問題
像 HTTP 503 響應這樣的伺服器端問題不僅令人討厭,還會對您的業務產生重大影響。
以下是一些需要注意的情況:
- 您的網站可能會間歇性不可用。
- 您的訪問者可能根本無法檢視您的網站。
- 網站上的特定頁面可能不可用,通常是資源最密集的頁面。
- 搜尋引擎無法讀取您的網站並對其進行排名。
- 網站的實用程式(如安全掃描)無法正常執行或無法在預定時間執行。
一般來說,503 錯誤會使您和您的訪問者都很難使用您的網站。值得慶幸的是,它是可以修復的!
如何修復WordPress的503錯誤
由於您經常無法確定在任何給定情況下導致503錯誤的原因,因此您需要逐步進行故障排除。 以下六個步驟分別涵蓋了一個解決方案,旨在解決不同的錯誤起因。
完成每個步驟後,請花點時間返回到您的網站,看看503錯誤是否消失。 如果是,您已成功解決了問題。 如果沒有,請繼續執行該過程的下一步。
1.暫時停用WordPress外掛
WordPress中503錯誤的最常見原因之一是外掛相容性問題。 要確定是否發生了這種情況,您需要禁用所有網站的外掛。
由於503錯誤導致您無法訪問WordPress管理後臺,因此您需要使用FTP客戶端執行此步驟。 如果您沒有安裝對應的工具,我們建議使用FileZilla。
FTP客戶端準備就緒後,通過它連線到您的網站並導航到您的WordPress根資料夾。 如果您找不到它,通常稱為public_html,html,public,www或您網站的名稱。一般路徑為/home/wwwroot/www.yourdomain.com/wp-content,如下圖所示:
WordPress外掛FTP目錄
開啟該資料夾,然後導航到wp-content目錄。 在裡面,您將看到一個名為plugins的資料夾,其中包含您站點上安裝的每個外掛(活動和非活動)的各個子目錄。
您現在要做的是右鍵單擊外掛資料夾,然後將其重新命名為其他內容。 我們建議使用plugins.old或plugins.deactivated,以便日後輕鬆識別。
WordPress plugins 資料夾重新命名
WordPress現在無法找到任何外掛。當發生這種情況時,它會自動禁用這些外掛。
現在,嘗試訪問您的WordPress儀表盤。如果503錯誤消失了,那麼你可以假設其中一個外掛是罪魁禍首。你所要做的就是將這個有問題的外掛揪出來。
返回到wp-content目錄,並正確重新命名原始外掛資料夾。然後,您需要逐個禁用每個外掛,直到找到罪魁禍首。
為此,請開啟wp-content/plugins目錄。在裡面,你會找到每個外掛的一個資料夾。您要遵循的流程與前面的步驟大致相同:
- 從第一個資料夾開始,並將其重新命名為您喜歡的任何內容。
- 檢查您的網站,看看錯誤是否消失。
- 如果不是,請將上一步中的外掛資料夾恢復為原始名稱。
- 轉到列表中的下一個外掛,重複上述步驟。
- 如果你有很多外掛,這個過程可能需要一段時間,但是依次檢查每個外掛是至關重要的。如果您在任何時候識別出導致錯誤的外掛,您可以將其解除安裝或用其他工具替換它。
如果在完成這些步驟沒有找到解決方案的情況下,您可以繼續執行下一步的故障排除。
2. 停用WordPress主題
既然你已經排除了外掛為503錯誤出現的原因,那麼現在是時候對你的WordPress當前正在使用主題做同樣的事了。 實際上,您的主題也可能會產生相容性問題。
不幸的是,該過程與上述不同。 如果只是重新命名主題資料夾,WordPress將不會恢復為預設主題,最終會出現“主題目錄”、“主題名稱不存在”之類的錯誤。或者如果您嘗試重新命名整個主題目錄資料夾, 最終出現“錯誤:主題目錄為空或不存在。 請檢查你的安裝。”
主題目錄不存在錯誤提示
因此,您需要通過登入phpMyAdmin來訪問您的WordPress資料庫。
單擊“wp_options”表,然後單擊“搜尋”選項卡。 您需要在“option_name”下搜尋template。
資料庫wp_options表
在“option_value”列下,您將看到主題的當前名稱。 將其更改為預設主題之一,例如“twentynineteen”。
wp_options 主題名稱
再次檢查您的網站,看看是否修復了錯誤。 如果已修復,即意味著是您的WordPress主題的問題,您可能想嘗試重新安裝它或恢復到最近的備份。
3. 暫時禁用CDN(內容分發網路)
不同的CDN服務商,這一塊的流程可能會有所不同,具體取決於您使用的CDN。 眾所周知,Cloudflare會導致503錯誤。 如果您找不到暫停選項的選項,請檢視您的服務知識庫,其中通常包含詳細說明。
如果您不使用CDN或發現暫停您的服務對您的問題沒有幫助,那麼我們需要繼續嘗試其他方法。 請記住在繼續之前重新啟用您的CDN。
4. 限制WordPress的 ‘Heartbeat’ API
WordPress Heartbeat是一個內建於WordPress中的API,該平臺用於自動儲存內容,顯示外掛通知,提醒你其他人正在處理您嘗試訪問的文章等等。
就像常規心跳一樣,API在後臺以高頻率工作,因此它不會遺漏任何內容。 如您所想,此API會佔用伺服器資源。 通常,這不是問題,但在某些情況下,如果您的伺服器無法處理負載,可能會導致503錯誤。
確定Heartbeat API是否是問題的核心的最快方法是暫時禁用它。 為此,請再次通過FTP連線到您的WordPress網站,然後開啟當前的主題資料夾並在以下位置查詢functions.php檔案:
WordPress主題的functions.php檔案
右鍵單擊該檔案,然後選擇“檢視/編輯”選項,該選項將使用本地文字編輯器將其開啟。 開啟後,您需要新增以下程式碼段:
add_action( 'init', 'stop_heartbeat', 1 ); function stop_heartbeat() { wp_deregister_script('heartbeat'); }
這三行程式碼告訴WordPress禁用Heartbeat API。 將更改儲存到functions.php檔案,關閉它後,再次嘗試訪問您的網站。
如果503錯誤消失,那這個API是問題所在。 但是,完全禁用它會使WordPress許多有用的功能不可用。 相反,我們建議您降低WordPress的Heartbeat頻率,以免造成問題。
最簡單的方法是安裝Heartbeat Control外掛。啟用外掛並導航到“設定”>“Heartbeat Control ”。 查詢“Modify Heartbeat”選項,並將頻率(Frequency)降至儘可能的數字:
Heartbeat Control外掛頻率設定
將更改儲存到您的設定並返回到functions.php檔案,要使上述更改生效,您需要刪除之前functions.php檔案新增的程式碼並將更改儲存到檔案中。
在此階段,如果Heartbeat API出現問題,那麼你應該已經解決了503錯誤。 如果不是,那麼是繼續嘗試不同的方法。
5. 增加伺服器資源
如果到目前為止所有修復依然未能解決503錯誤,那麼問題很可能是由於缺少伺服器資源。 也就是說,您需要升級您的伺服器,看看是否能解決問題。 如果你使用廉價的WordPress主機,它們往往會限制資源導致503報錯。
下面我們就來分析一下如何弄清楚這個問題:
- 分析當前的資源使用情況:大多數託管服務提供商都提供監控資源使用情況的工具。檢視 CPU 使用率、記憶體消耗量和頻寬等指標。如果這些指標持續達到極限,則表明您需要升級。如果可能,在流量大的時候執行這些檢查。
- 評估你的網站: 一個擁有靜態內容的簡單部落格比一個擁有動態內容、資料庫和大量外掛的複雜電子商務網站消耗的資源要少。
- 考慮一下您的具體資源需求:不要只看 CPU 和記憶體。還要考慮儲存空間(尤其是在有大量媒體的情況下)、資料庫效能和頻寬。如果您的網站嚴重依賴資料庫查詢,請確保任何新的託管計劃都能提供優化的資料庫效能。
但是,升級伺服器是一個重大決定。 聰明的舉措是首先聯絡您的伺服器提供商,並與他們討論503錯誤,以及您迄今為止嘗試解決它的步驟。 支援團隊應該能夠幫助您解決問題,並建議您是否需要升級伺服器。
6. 檢視日誌及開啟WP_DEBUG
您還應該利用錯誤日誌。 如果您的網站伺服器使用的LNMP搭建,通過網站伺服器/home/wwwlogs路徑,可以快速找到網站訪問錯誤日誌(一般以nginx_error.log或者error.log命名)。 這可以幫助您快速縮小問題範圍,特別是如果它是由您網站上的外掛產生的。
檢查錯誤日誌記錄中的503錯誤
如果您的主機沒有日誌記錄工具,您還可以將以下程式碼新增到wp-config.php檔案以啟用日誌記錄:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Debug日誌通常位於/wp-content目錄中。 在其中,查詢名為debug.log的檔案並將其開啟。
也有一些伺服器提供商,可能會有一個名為“logs”的專用資料夾。
WordPress錯誤日誌資料夾 (SFTP)
檢視debug日誌可能會讓很多站長望而卻步,但它並不像您想象的那樣難以閱讀。 簡而言之,日誌包含按時間順序在您的網站上彈出的每個錯誤。 它顯示了導致每個錯誤的檔案,以及涉及哪些特定程式碼行。
注意:您不會在日誌中找到對503錯誤的直接引用。 即便如此,如果所有其他方法都失敗了,它可以通過向您顯示導致問題的檔案來指向正確的方向。 這樣,你就會知道接下來要把重點放在哪裡。 正如我們在上一步中提到的,如果您需要進一步的幫助來解決此錯誤,現在是與您的伺服器提供商聯絡,讓他們來協助解決這個問題。又或者找個懂伺服器運維的朋友幫忙。
您還可以檢查Apache和Nginx中的日誌檔案,這些檔案通常位於此處:
- Apache: /var/log/apache2/error.log
- Nginx: /var/log/nginx/error.log
如果由於致命的PHP錯誤而導致503錯誤,您還可以嘗試啟用PHP錯誤報告。 只需將以下程式碼新增到出錯誤的檔案中即可。 通常,您可以在Google Chrome DevTools的控制檯標籤中縮小檔案範圍。
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
您可能還需要使用以下內容修改php.ini檔案:
display_errors = on
7. 重新安裝WordPress
如果關閉外掛和重置主題都不起作用,您可能需要重新安裝 WordPress。
哦,天哪,聽起來真麻煩。
好訊息是,只有在 WordPress 核心檔案被修改(不應該被修改)或損壞的情況下,您才需要採取這一步驟。這並不像你想象的那麼可怕。
WordPress 會將您上傳的檔案儲存在主機伺服器上,其餘資料則安全地儲存在網站資料庫中。這意味著您可以重新安裝 WordPress 核心檔案,而其他檔案應該保持不變。
即便如此,您還是要備份檔案以防萬一。
每個好的託管服務都提供備份工具,您可以使用這些工具建立託管賬戶的當前備份或快照,以便日後恢復。
重新安裝WordPress最簡單的方法是通過儀表盤。轉到控制面板 > 更新 。然後點選重新安裝 6.6.2 版(或正在執行的版本):
WordPress 會自行重新安裝。完成後,重新整理您的網站,看看是否有所改變。
如果您無法訪問 WordPress 控制面板,也可以通過 SFTP 手動重新安裝 WordPress。首先,您需要直接從 WordPress.org 下載 WordPress。
然後,解壓 .zip 檔案並開啟 FileZilla 或其他 SFTP 解決方案。確保客戶端已連線到 WordPress 網站。然後,將新下載的 WordPress 檔案上傳到 WordPress 目錄。
新的 WordPress 檔案應完全替換舊 WordPress 目錄中的所有內容。一般來說,每次進行重大更改後,最好都檢查一下網站的效能。
小結
一般情況下,只有當您將網站置於維護模式時,才會顯示503錯誤。 但是,如果它不是這個原因,那麼你將不得不捲起袖子進行故障排除。
要了解503錯誤的根本原因,您需要按照以下步驟進行修復:
- 暫時停用WordPress外掛。
- 停用正在使用的WordPress主題。
- 禁用網站的CDN服務。
- 限制WordPress的Heartbeat API。
- 增加伺服器資源。
- 檢視日誌並啟用WP_DEBUG。
- 重新安裝WP核心
你有沒有遇到過WordPress中的503錯誤? 在下面的留言評論與我們分享您的經驗!
評論留言