如何修復WordPress中的HTTP 503服務不可用錯誤

在WordPress網站上遇到錯誤可能會令人生畏。但是,大多數錯誤都會為您提供一些線索,這些錯誤可以幫助您解決問題。遺憾的是,503錯誤不是很有禮貌,並且不會給你提供太多信息。

它有助於理解WordPress中503錯誤的最常見原因。之後,在對錯誤進行故障排除時,您需要有條不紊,這意味著需要執行幾個步驟才能找到根本原因。

在本文中,我們將介紹503錯誤是什麼以及它通常如何顯示。然後,我們將引導您完成六個步驟以對其進行故障排除。我們開始吧!

你厭倦了緩慢的WordPress主機和可怕的支持嗎?我們在Kinsta做不同的事情。

查看我們的託管計劃

  • 什麼是503錯誤?
  • 如何修復WordPress中的503錯誤

什麼是503錯誤?

遇到503錯誤時,表示相關伺服器不可用。這可能是因為它太忙了,或者它處於維護狀態。與其他類似的錯誤代碼不同,503表示您的網站已聯機並正在運行,但目前無法訪問。

令人煩惱的是,這個特殊的錯誤是它幾乎沒有給你任何信息。大多數情況下,它只顯示「服務暫時不可用」消息。這相當於通過電話打電話給餐館,只是讓他們告訴你他們已經關閉,但拒絕讓他們知道什麼時候他們會再次打開。

如果幸運的話,將會出現503錯誤代碼,因為您的WordPress網站正在維護中。當您更新插件,主題或核心軟體時,WordPress會非常簡短地將您的網站設置為維護模式:

503 WordPress中的錯誤

維護模式

通常,此超時非常簡短,沒有人會注意到它。但是,在503錯誤仍然存​​在的情況下,您將面臨更大的問題需要處理。畢竟,用戶不僅無法訪問您的網站,而且您也將失去對WordPress管理區域的訪問許可權。這意味著您無法以任何方式更新您的網站,並且為了對其進行故障排除,您需要深入了解其文件。

503錯誤變體

503錯誤可以通過很多方式顯示出來。但是,幾乎每個變體都伴隨著503代碼,因此很容易識別。

以下是您可能遇到的一些變體,具體取決於您的伺服器配置和瀏覽器:

  • 503服務不可用
  • 503服務暫時不可用
  • HTTP伺服器錯誤503
  • HTTP錯誤503
  • 錯誤503服務不可用

無論您遇到的代碼是什麼樣子,都意味著您需要在它對用戶產生負面影響之前快速開始工作。

如何解決WordPress中的503錯誤(6個步驟)

由於您經常無法確定在任何給定情況下導致503錯誤的原因,因此您需要有條不紊地對其進行故障排除。以下六個部分分別涵蓋了一個潛在的解決方案,旨在解決不同的潛在根本原因。

完成每個步驟後,請花點時間返回到您的網站,看看503錯誤是否消失。如果是,您已成功解決了問題。如果沒有,請繼續執行該過程的下一步。

1.暫時停用WordPress插件

WordPress中503錯誤的最常見原因之一是插件兼容性問題。要確定是否發生了這種情況,您需要禁用所有網站的插件。

由於503錯誤阻止您訪問WordPress管理區域,因此您需要使用FTP客戶端執行此步驟。如果您沒有設置,我們建議使用FileZilla。

FTP客戶端準備就緒後,通過它連接到您的網站並導航到您的WordPress根文件夾。如果您找不到它,通常稱為public_html,html,public,www或您網站的名稱。如果您是Kinsta客戶端,則它是您的公用文件夾。

WordPress根文件夾SFTP

WordPress根文件夾SFTP

打開該文件夾,然後導航到wp-content目錄。在裡面,您將看到一個名為plugins的文件夾,其中包含您站點上安裝的每個插件(活動和非活動)的各個子目錄。

您現在要做的是右鍵單擊插件文件夾,然後將其重命名為其他內容。我們建議使用plugins.old或plugins.deactivated,以便日後輕鬆識別。

WordPress插件文件夾已重命名

WordPress插件文件夾已重命名

WordPress現在無法找到任何插件。當發生這種情況時,它會自動禁用這些插件。

現在,嘗試訪問您的WordPress儀錶板。如果503錯誤消失了,那麼你可以假設你的一個插件是罪魁禍首。你所要做的就是找出哪一個有問題。

返回到wp-content目錄,並正確重命名原始插件文件夾。然後,您需要逐個禁用每個插件,直到找到罪魁禍首。

為此,請打開wp-content / plugins目錄。在裡面,你會找到每個插件的一個文件夾。您要遵循的流程與以前大致相同:

  1. 從第一個文件夾開始,並將其重命名為您喜歡的任何內容。
  2. 檢查您的網站,看看錯誤是否消失。
  3. 如果不是,請將上一步中的插件文件夾恢復為原始名稱。
  4. 轉到列表中的下一個插件,重複上述步驟。

如果你有很多插件,這個過程可能需要一段時間,但是依次檢查每個插件是至關重要的。如果您在任何時候識別出導致錯誤的插件,您可以將其卸載或用其他工具替換它。

如果在沒有找到解決方案的情況下完成這些步驟,您可以繼續進行下一階段的故障排除。

2.停用您的WordPress主題

既然你已經排除了插件作為503錯誤的原因,那麼現在是時候對你的活動主題做同樣的事了。實際上,您的主題也可能會產生兼容性問題。

不幸的是,該過程與上述不同。如果只是重命名主題文件夾,WordPress將不會恢復為默認主題,最終會出現「主題目錄」主題名稱「不存在」之類的錯誤。或者如果您嘗試重命名整個主題目錄文件夾,最終出現「錯誤:主題目錄為空或不存在。請檢查你的安裝。「

主題目錄不存在錯誤

主題目錄不存在錯誤

因此,您需要通過登錄phpMyAdmin來訪問您的WordPress資料庫。如果您是Kinsta客戶端,可以在MyKinsta儀錶板的「信息」部分找到它。

MyKinsta phpMyAdmin

MyKinsta phpMyAdmin

單擊「wp_options」表,然後單擊「搜索」選項卡。您需要在「option_name」下搜索模板。

phpMyAdmin wp_options表

phpMyAdmin wp_options表

在「option_value」列下,您將看到主題的當前名稱。將其更改為默認主題之一,例如「twentynineteen」。

wp_options模板名稱

wp_options模板名稱

再次檢查您的網站,看看是否修復了錯誤。如果是這樣,它只是意味著它是您的WordPress主題的問題,您可能想嘗試重新安裝它或恢復到最近的備份。

3.暫時禁用內容分發網路(CDN)

有時,503錯誤將顯示不是因為您的網站出現問題,而是因為您的內容交付網路(CDN)。如果您正在使用CDN,可以通過快速方法確定是否會暫時禁用CDN。

每個CDN都應包含一些使您能夠暫停其服務的功能。如果您使用的是Kinsta,則可以通過導航到MyKinsta儀錶板內的CDN→「禁用CDN」來禁用Kinsta CDN:

MyKinsta CDN啟用/禁用選項

MyKinsta 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文件

WordPress主題functions.php文件

右鍵單擊該文件,然後選擇「查看/編輯」選項,該選項將使用本地文本編輯器將其打開。一旦打開,您需要在以下內容中添加以下代碼段:

add_action('init','stop_heartbeat',1); function stop_heartbeat(){wp_deregister_script('heartbeat'); }

這三行代碼告訴WordPress禁用Heartbeat API。將更改保存到functions.php文件,關閉它,然後再次嘗試訪問您的網站。

掙扎著停機和WordPress問題? Kinsta是託管解決方案,旨在為您節省時間!看看我們的功能

如果503錯誤消失,您將知道API是問題所在。但是,完全禁用它會刪除許多有用的功能。相反,我們建議您「減慢」心跳,以免造成問題。

最簡單的方法是安裝Heartbeat Control插件。激活插件並導航到「設置」>「心跳控制」部分。查找「修改心跳」選項,並將頻率降至最低可能的數字:

心跳控制插件頻率

心跳控制插件頻率

將更改保存到您的設置並返回到您稍後調整的functions.php文件。要使上述更改生效,您需要刪除之前添加的代碼字元串並將更改保存到文件中。

在此階段,如果Heartbeat API出現問題,則應該消除503錯誤。如果不是,那麼是時候嘗試不同的東西了。

5.增加伺服器的資源

如果到目前為止所有嘗試修復它仍然發生503錯誤,那麼問題很可能是由於缺少伺服器資源。也就是說,您需要升級您的託管計劃,看看是否能解決問題。如果你使用廉價的WordPress主機,尤其如此,因為它們往往會限制資源。我們不會在Kinsta這樣做。

但是,升級您的計劃是一個重大決定。聰明的舉措是首先聯繫您的網路託管支持服務,並與他們討論503錯誤,以及您迄今為止嘗試解決它的步驟。支持團隊應該能夠幫助您解決問題,並建議您是否需要升級計劃。

在Kinsta,我們的支持團隊非常樂意為您服務。我們甚至可以暫時啟用New Relic,看看我們是否可以將問題查明到導致問題的網站上的問題。

6.檢查您的日誌並啟用WP_DEBUG

您還應該利用錯誤日誌。如果您是Kinsta客戶端,則可以在MyKinsta儀錶板中輕鬆查看日誌查看器中的錯誤。這可以幫助您快速縮小問題範圍,特別是如果它是由您網站上的插件產生的。

檢查503錯誤的錯誤日誌

檢查503錯誤的錯誤日誌

如果您的主機沒有日誌記錄工具,您還可以將以下代碼添加到wp-config.php文件以啟用日誌記錄:

define('WP_DEBUG',true); define('WP_DEBUG_LOG',true); define('WP_DEBUG_DISPLAY',false);

日誌通常位於/ wp-content目錄中。在其中,查找名為debug.log的文件並將其打開。

其他人,比如Kinsta,可能會有一個名為「logs」的專用文件夾。

WordPress錯誤日誌文件夾(SFTP)

WordPress錯誤日誌文件夾(SFTP)

解釋您的調試日誌可能有點令人生畏,但它並不像您想像的那樣難以閱讀。簡而言之,日誌包含按時間順序在您的網站上彈出的每個錯誤。它顯示了導致每個錯誤的文件,以及涉及哪些特定代碼行。

請注意:您不會在日誌中找到對503錯誤的直接引用。即便如此,如果所有其他方法都失敗了,它可以通過向您顯示導致問題的文件來指向正確的方向。這樣,你就會知道接下來要把重點放在哪裡。正如我們在上一步中提到的,如果您需要進一步的幫助來解決此錯誤,現在是與您的託管服務提供商聯繫的好時機。

您還可以檢查Apache和Nginx中的日誌文件,這些文件通常位於此處:

  • 阿帕奇:/var/log/apache2/error.log
  • Nginx的:/var/log/nginx/error.log

如果您是Kinsta客戶端,您還可以利用我們的分析工具來分析503錯誤的總數,並查看它們發生的頻率和時間。如果這是一個持續存在的問題,或者可能已解決的問題,這可以幫助您進行故障排除。

如果由於致命的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 Summary

如果您很幸運,只有當您將網站置於維護模式時,才會顯示503錯誤。但是,如果它沒有出現警告,那麼你將不得不捲起袖子進行一些故障排除。

要了解503錯誤的根本原因,您需要按照以下步驟進行修復:

  • 暫時停用WordPress插件。
  • 停用您的WordPress主題。
  • 禁用您的CDN。
  • 限制WordPress Heartbeat API。
  • 增加伺服器資源。
  • 查看日誌並啟用WP_DEBUG。

你有沒有遇到過WordPress中的503錯誤?在下面的評論部分與我們分享您的經驗!

相關文章