如何調試常見的 WordPress 問題
已發表: 2023-01-25WordPress 是一個非常穩定的 CMS 系統,在大多數情況下,可以順利運行。 但是,由於其多功能性,在某些情況下,可能會出現問題。 發生這種情況的原因有多種,這就是故障排除和調試非常重要的原因。 幸運的是,WordPress 附帶了一個開箱即用的基本工具,可以使任務變得更加容易。
在查看許多 WordPress 管理員和網站所有者可能遇到的最常見問題之前,本文首先介紹了 WordPress 調試工具。 然後,我們將查看原因並進行修復,以幫助您立即恢復正常運行。
什麼是調試?
顧名思義,調試是識別錯誤並將其從軟件代碼中移除的過程。 大多數(如果不是全部)軟件開發人員會發現自己在調試代碼——這是運行代碼時的例行做法。
然而,即使代碼通過了質量保證檢查,新的錯誤也可能在軟件安裝後出現。
發生這種情況的原因有多種,包括軟件安裝在開發人員未測試的環境中。 軟件開發人員和測試人員不可能在所有可能的環境中測試他們的代碼——永遠不會發布任何軟件。 我們將在本文後面深入研究更多細節。
在這種情況下,網站管理員和所有者可能需要進行一些調試以幫助開發人員識別問題。 雖然這聽起來像是太技術性的東西,但實際上,這很容易。 別著急; 本文將向您展示如何操作。
什麼是錯誤?
錯誤是軟件中的意外行為。 這種意外行為會以各種方式表現出來,包括錯誤、異常、警告等。 它還可能導致功能和特性無法按預期工作。
發生這種情況時,我們需要調試軟件,在本例中為 WordPress。 幸運的是,WordPress 附帶了一個開箱即用的調試工具,稱為 WP_DEBUG。
WordPress 調試 – WP_DEBUG 和 WP_DEBUG_LOG
WP_DEBUG 是一個內置的 WordPress 調試工具。 啟用後,它會顯示由 PHP 代碼(支持 WordPress 的底層技術)生成的所有錯誤、警告和通知。
另一方面,WP_DEBUG_LOG 將這些錯誤、警告和通知保存到日誌文件中——使其更容易與第三方共享。 雖然這與 WordPress 活動日誌有很大不同,但它記錄了軟件執行的所有操作,幫助開發人員識別代碼的哪些元素正在運行。
如何使用 WP_DEBUG
WP_Debug 使用起來相當簡單直接。 它確實要求您具有對 WordPress 文件系統目錄的 SFTP 或 SSH 訪問權限,因此如果您不確定是否擁有此權限,則可能需要與您的託管服務提供商聯繫。
現在,該設置位於文本文件中,因此我們需要使用文本編輯器將其打開。 好消息是,這是從 wp-config.php 文件完成的,該文件位於 WordPress 安裝的根目錄中——非常容易找到。
您要查找的設置稱為 WP_DEBUG,需要將其設置為 true,如下所示:
// 啟用 WP_DEBUG 模式
定義('WP_DEBUG',真);
要啟用日誌記錄,您需要啟用 WP_DEBUG_LOG 選項,如下所示:
// 啟用調試日誌記錄到 /wp-content/debug.log 文件
定義('WP_DEBUG_LOG',真);
如果 WP_DEBUG_LOG 選項不可用,您可以簡單地將命令複製並粘貼到 wp-config.php 文件中。
要阻止錯誤顯示在您的 WordPress 網站前端,您可以將 WP_DEBUG_DISPLAY 選項設置為 false,如下所示;
定義('WP_DEBUG_DISPLAY',假);
重要說明:WP_DEBUG 應該在您的測試或暫存環境中啟用,而不是在您的實時網站上啟用。
如果您正在解決特定問題,請嘗試在啟用 WP_DEBUG/WP_DEBUG_LOG 選項時重現該問題——具體取決於您啟用的選項。 這樣做會導致錯誤,進而導致調試工具寫入日誌文件。
常見的 WordPress 問題
正如我們之前提到的,WordPress 是一個非常穩定的 CMS。 許多開發人員在每個版本中投入了無數小時,並且許多人設法順利運行它。 知名開發商的主題和插件也是如此。 然而,由於環境的變化,問題和衝突可能會出現。 對於與 WordPress 相關的軟件來說是這樣,對於任何其他軟件也是如此。 因此,問題可能會不時出現。
WordPress 問題,無論是直接與 WordPress 還是主題或插件相關,並不一定意味著軟件有問題。 通常,這是一個配置問題。 無論哪種方式,WP_Debug 都可以幫助您發現正在發生的事情。
死亡白屏
症狀
白屏死機,也以其首字母縮寫詞 WSOD 而聞名,出現在您的 WordPress 網站中,顯示一個完全空白的白屏。
原因
雖然許多因素都會導致 WSOD,但一個常見的罪魁禍首是插件和主題的兼容性問題。 如果您最近安裝或更新了插件,手動禁用插件或主題應該是您的第一個停靠點。
使固定
調試日誌文件可以讓您更好地了解是哪個插件和哪行代碼導致了問題。 如果您確定問題出在插件或主題上,您可能需要與開發人員聯繫以進行修復。 如果問題出在其他地方,日誌文件將使您更好地了解導致問題的原因。
數據庫連接問題
症狀
WordPress 數據庫連接問題的發生可能有多種原因,並以不同的方式表現出來。 一種更常見的症狀是在您的網站上看到“建立數據庫連接時出錯”消息。
原因
WordPress 依靠 MySQL 來存儲和讀取設置和帖子等數據。 如果沒有連接到 WordPress 數據庫,網站將無法運行。 數據庫連接錯誤的發生可能有多種原因,包括連接或憑據問題。
使固定
確保 MySQL 服務器已啟動並正在運行,並且 WordPress 可以連接到它。 請記住檢查防火牆規則和配置文件,特別是如果您進行了更改或者是首次安裝。 接下來,確保 WordPress 數據庫用戶對所需的表具有足夠的權限並且可以運行數據庫查詢。
內存限制/耗盡
症狀
當達到內存限制時,您將看到一個致命錯誤,指出允許的內存已用完。
原因
內存限制錯誤是一個會影響 WordPress 的 PHP 錯誤。 PHP 是為 WordPress 提供支持的底層技術,它使用內存來運行應用程序,包括 WordPress。 內存限制就像硬 RAM 限制一樣,可以避免 WordPress 消耗過多內存並導致服務器宕機。 默認限制為 128MB; 但是,您的託管服務提供商可能會設置不同的限制。
使固定
在尋求增加內存限制之前,請確保沒有消耗比應有的內存更多的內存。 如果您的 WordPress 對於當前內存限制來說變得太大了,您可能需要增加它。 如果您使用的是託管計劃,請與您的提供商聯繫——在大多數情況下,您需要升級您的計劃。
解析錯誤:語法錯誤
症狀
在您的 WordPress 網站上執行操作時顯示解析錯誤:語法錯誤。
原因
解析錯誤:當 WordPress 嘗試執行代碼但發現語法錯誤阻止它執行時,就會發生語法錯誤。 通常,發生這種情況的原因有兩個:缺少代碼,或者您使用的 PHP 版本不正確。
使固定
確保您運行的是最新版本的 PHP。 這不僅是一個簡單的修復,而且可以幫助您確保運行的是最新版本,其中可能包括錯誤修復。 如果錯誤仍然存在,錯誤本身會告訴您哪個組件有問題。 這可以幫助您確定它是插件或主題(在這種情況下您應該聯繫開發人員)還是 WordPress(在這種情況下您應該重新上傳 WordPress 核心文件。
超過最大執行時間
症狀
執行更新插件等操作時,會顯示致命錯誤:超出最大執行時間。
原因
如果特定操作的執行時間超過分配的時間,則可能會發生超出最大執行時間的錯誤。 設置此時間限制是為了避免任何一個操作佔用所有 CPU 時間,這可能會導致您的網站崩潰。
使固定
要解決此問題,首先,確定是哪個操作導致了它。 查看您在網站上所做的最後一件事,如果您有 WordPress 活動日誌,請參考它。 接下來,使用 WP Crontrol 和計劃的操作等插件檢查 cron 作業,看看是否有任何問題被卡住。 啟用 WP_DEBUG 並重試該操作。 接下來,檢查錯誤日誌,如果是插件或主題,請聯繫開發人員。 另一種選擇是增加執行時間。
內部服務器錯誤
症狀
內部服務器錯誤,也稱為錯誤 500,顯示內部服務器錯誤消息而不是您的 WordPress 網站。
原因
內部服務器錯誤並非特定於 WordPress。 這是一個 HTTP 錯誤代碼,當 Web 服務器遇到它沒有代碼的問題時返回。 由於未提供其他信息,此包羅萬象的錯誤可能會使故障排除變得困難。
使固定
修復 500 錯誤可能涉及一些試錯故障排除。 您可能希望首先停用所有 WordPress 插件和主題,尤其是如果您最近安裝或更新了任何東西。 接下來,嘗試使用 FTP 客戶端重新上傳 WordPress 核心文件。 其他常見的修復包括檢查您的 HTACCESS 文件和增加 PHP 內存限制,我們在上面已經介紹過。
更新失敗
症狀
插件更新後顯示更新失敗錯誤。 如果您啟用了自動更新,也可能會顯示失敗的自動升級。
原因
更新是良好的 WordPress 治理最重要的方面之一。 他們提供修復並可以添加新功能。 更新可能由於各種原因而無法執行,包括互聯網連接中斷、插件不能很好地相互配合以及 WordPress 文件權限。
使固定
失敗的更新不太可能導致您的網站崩潰,因此值得一試,以防您的連接出現問題。 接下來,從 Site Health 菜單檢查 REST API 並確保它正在運行。 如果這不能解決問題,請檢查錯誤日誌以獲取更多信息。
維護模式
症狀
WordPress 在更新未完成後陷入維護模式。
原因
每當 WordPress 更新其文件、插件或主題時,它就會進入維護模式。 這樣做允許應用程序使文件“脫機”並更新它們。 在此過程中,WordPress 會創建一個 .maintenance 文件,並將其存儲在根目錄中。 如果出於某種原因,更新中斷,WordPress 可能會陷入這種維護模式。
使固定
要使 WordPress 退出維護模式,請通過 FTP 或 SSH 登錄並刪除 .maintenance 文件。 您可能還需要刪除緩存以使網站恢復正常。 WP_DEBUG 可以幫助您解決問題,但建議您在暫存或測試環境中嘗試此操作,以免網站宕機。
我的錯誤沒有在上面列出
WordPress 環境彼此之間可能千差萬別,不時會發生不明錯誤。 在這種情況下,啟用 WordPress 調試模式是您可以採取的最佳步驟之一。
雖然這聽起來很嚇人,但它可以幫助您更好地理解 WordPress 的工作原理,從而變得更好。 請記住,擁有 WordPress 測試或暫存環境可能會有很大幫助。 在不危及您的實時網站的情況下解決問題時,這樣的環境非常有幫助。
WordPress 疑難解答
WordPress 依靠多種技術協同工作來確保您的網站正常運行。 雖然我們對 MySQL 和 PHP 進行了相當多的介紹,但 HTML、CSS 和 Javascript 等其他技術對於網站的顯示和功能至關重要。
只要您選擇信譽良好的開發人員,就應該沒問題,但很多時候,其他因素也會導致 WordPress 錯誤。 這是 WordPress 調試可以證明是你的朋友的地方。 說到插件和主題開發人員,這有助於確保他們提供支持,這樣您就可以更輕鬆地休息,因為知道有人在那裡可以幫助您解決問題。
故障排除是一項很好的技能,可以在無數方面為您提供幫助。 您不僅可以最大限度地減少停機時間,而且在為更安全、更安全的網站進行 WordPress 安全練習時,它也會派上用場。