為什麼我的 WordPress 網站上出現 HTTP 500 內部服務器錯誤? (帶視頻)

已發表: 2021-03-12
HTTP 500 Internal Server Error

最後更新 - 2021 年 7 月 8 日

如果您有一個 WordPress 網站,您可能會遇到的常見錯誤之一是 HTTP 錯誤 500。這可能會讓網站所有者感到困惑,尤其是如果您是 WordPress 的初學者。 如果您收到 HTTP 錯誤 500,您會怎麼做? 為什麼會出現此錯誤? 您可能必須找出錯誤的原因,然後嘗試不同的選項來修復它。 在本文中,我們將討論 HTTP 錯誤 500 的一些原因以及修復它的方法。

了解 HTTP 500 內部服務器錯誤

當您的服務器無法顯示請求的頁面時,會顯示內部服務器錯誤。 它可能是您的 Web 服務器上的問題,並且具有某種通用性。 從這個錯誤中,您可能無法理解很多潛在的原因。 此錯誤有幾個常見原因,其中包括您安裝的插件或主題的不當行為。 這也可能是由於 .htaccess 文件損壞或 PHP 內存限制問題。

現在,我們將研究可能幫助您解決此錯誤的可能性。

啟用調試

您可以嘗試解決 WordPress 上的錯誤的首要策略之一是打開調試。 現在,這不會為您解決問題,但它會幫助您找出問題所在。

要打開調試模式,您必須訪問 wp-config.php 文件。 當您搜索此文件中的內容時,您應該能夠找到 WP_DEBUG。 這必須設置為“true”才能啟用調試。 如果您無法在 wo-config.php 文件中找到 WP_DEBUG,您可以簡單地創建它。

基本上,您需要在 wp-config.php 文件中有以下代碼才能打開調試。

define( "WP_DEBUG", true );

現在,如果您嘗試重新加載站點,則錯誤可能已更改。 有可能現在錯誤已更改,並且新錯誤指向存在問題的特定代碼行。 這實際上將幫助您了解問題的確切性質,並且您可以直接解決它並修復它。 例如,如果錯誤指向插件或主題,您可以簡單地禁用它來解決問題。 如果打開調試後沒有任何變化,您仍然可以將其保持為“真”,直到問題解決。

試試調試插件

您可以使用調試插件來幫助您識別問題。 這是一個流行的:

查詢監視器

該插件將幫助您調試您在網站上可能遇到的不同問題。 其中包括數據庫查詢、PHP 錯誤、AJAX 調用的調試、識別插件的性能問題等。它通過有組織地顯示頁面的調試信息來幫助您識別站點上的問題。

HTTP 500 內部服務器錯誤
該插件可幫助您調試不同的 WordPress 問題。

清除瀏覽器緩存

清除瀏覽器緩存是一個很好的初始故障排除步驟,可能值得一試。 儘管該過程可能因各種瀏覽器而異,但您可以通過以下方式清除 Google Chrome 的瀏覽器緩存。

找到並單擊瀏覽器右上角的三個點圖標。 然後,前往更多工具 > 清除瀏覽數據

HTTP 500 內部服務器錯誤
從緩存中訪問“清除瀏覽數據”設置。

將打開一個新窗口,並彈出“清除瀏覽數據”。 在這裡,請確保您只選擇了“緩存的圖像和文件”選項,因為我們現在不想刪除保存的密碼、cookie 和瀏覽歷史記錄。

在頂部,您還可以選擇清除瀏覽緩存的時間範圍。 然後,只需單擊“清除數據”。 您的 Chrome 瀏覽器緩存現在為空。

HTTP 500 內部服務器錯誤
清除 Chrome 中的瀏覽器緩存。

檢查插件和主題

有時,當您遇到內部服務器錯誤時,您仍然可以訪問 WordPress 管理頁面。 如果是這種情況,您可以檢查您的插件或主題之一是否導致問題。 為此,首先,您可以停用站點上的所有插件,然後嘗試重新加載站點。 如果錯誤消失,則表示問題出在其中一個插件上。 現在,您可以一個一個激活插件,看看錯誤是否再次出現。 這樣,您可以輕鬆確定是否是某個插件導致了錯誤。

如果您無法確定插件的問題,則您的主題可能會造成問題。 了解這一點的最佳方法是切換到默認的 WordPress 主題。 如果您的網站在此之後加載正常,則意味著問題出在主題上。 您可以聯繫主題的客戶支持,或獲得開發人員的幫助以查找主題的具體問題。

增加內存限制

內部服務器錯誤的原因之一可能是您站點的內存限制。 有時,錯誤編碼的插件或主題會導致耗盡內存限制。 即使它不是永久解決問題的方法,您也可以通過增加內存限制來暫時避免錯誤。 專家警告說,這不是推薦的修復方法,您應該進一步調查以了解是什麼耗盡了內存。

就像您啟用調試一樣,您可以從根 WordPress 安裝中找到 wp-config.php 文件。 在文件中搜索以下行:

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

您可以通過在此處指定更高的值來簡單地增加內存限制。 例如,您可以替換此行,如下所示:

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

如果內存限制是問題,這應該足以幫助您克服錯誤。 您還可以聯繫您的託管服務以了解服務器是否存在問題。 如果服務器沒有真正針對無縫 WordPress 體驗進行優化,您甚至可以考慮切換到另一個託管服務。 這些與服務器相關的問題通常可以在共享託管服務中看到。

修復 .htaccess 文件的問題

.htaccess 文件包含一些可能對您的站點運行至關重要的服務器配置規則。 .htaccess 文件中的任何問題都可能導致錯誤。 現在,您將如何確定問題是否實際上是由損壞的 .htaccess 文件引起的?

使用 FTP 查找 WordPress 根目錄中是否有 .htaccess 文件。 確保隱藏文件在 FTP 編輯器上可見。 如果您能夠找到 .htaccess 文件,則可以通過重命名該文件來創建該文件的備份。 現在,您必須刪除原始 .htaccess 文件及其所有內容。 在此之後,您可以嘗試重新加載網站。 如果問題出在損壞的 .htaccess 文件上,刪除該文件及其內容將為您解決問題。

您可以通過訪問“設置”>“永久鏈接”並單擊“保存更改”按鈕來創建新的 .htaccess 文件。

檢查您的 PHP 版本

您需要找出運行您網站的 PHP 版本。 簡單地使用舊版本的 PHP 不會導致內部服務器錯誤。 但是,如果插件正在使用舊版本中不可用的功能,則可能會導致錯誤。 請聯繫您的託管服務提供商並了解您正在運行的 PHP 版本。 如果它是一個非常舊的版本,請要求他們更新到最新版本。

重新上傳核心 WordPress 文件

在大多數情況下,這不是問題的明確解決方案。 但是,如果其他策略都不適合您,專家建議嘗試一下。 在此之前,您應該創建站點的備份,然後下載新版本的 WordPress。

HTTP 500 內部服務器錯誤
您可以下載新版本的 WordPress 並替換 wp-admin 和 wp-includes 文件夾。

使用 FTP 客戶端訪問您站點的根目錄,並將現有的wp-adminwp-includes文件夾替換為新版本。 刷新您的站點,如果錯誤消失了,您可以假設它是由於核心文件損壞造成的。

修復建立數據庫連接的錯誤問題

數據庫連接錯誤也可能導致發生 500 個內部服務器錯誤。 儘管它還會在服務器日誌中生成 500 HTTP 狀態,但您會在瀏覽器中收到“建立數據庫連接時出錯”消息。

此問題可能是由不正確的數據庫登錄憑據、損壞的 WordPress 數據庫或文件或由於您的數據庫服務器的其他問題引起的。 以下是針對此問題的一些簡單修復:

  1. 檢查您的數據庫登錄憑據是否正確。
  2. 使用 WordPress 的內置數據庫修復模式修復損壞的數據庫:define('WP_ALLOW_REPAIR', true);
  3. 修復損壞的文件
  4. 請與您的託管服務提供商聯繫,了解與您的數據庫服務器相關的問題。
  5. 恢復到您的最新備份。

消除任何 WordPress 權限錯誤

如果您服務器上的文件或文件夾存在權限錯誤,您將看到 500 內部服務器錯誤。 您可以使用 FTP 客戶端查看這些文件權限。 以下是有關 WordPress 文件和文件夾權限的一些建議。

  • 所有文件應為 644 (-rw-r–r–) 或 640。
  • 所有目錄應為 755 (drwxr-xr-x) 或 750。
  • 不應給任何目錄 777,包括上傳目錄。
  • 加固: wp-config.php 可以設置為 440 或 400 以防止服務器上的其他用戶讀取它。

確定是否存在多個問題

有可能是多種問題導致您的站點出現內部服務器錯誤。 重要的是,您能夠確定是否屬於這種情況。 如果您按順序嘗試上述故障排除步驟,您將能夠識別這種情況的一種方法。 確保不要在每一步之後撤消更改,這樣即使不止一個導致問題,您也可以識別它們。

聯繫您的房東

如果您已嘗試使用所有可用策略對 HTTP 500 內部服務器錯誤進行故障排除,您可以聯繫您的託管服務提供商。 有時問題出在託管服務端,您可能無法控制。 但是,最好通過上述方法排除 WordPress 根目錄中的問題。

他們將能夠查看服務器日誌並確定錯誤的真正原因。 大多數優秀的託管服務提供商都會有一個優秀的客戶支持團隊來幫助您解決真正的服務器問題。

通常,內部服務器錯誤對於 WordPress 初學者來說可能是一種令人沮喪的體驗。 正是由於錯誤的模糊性,它通常需要專家來確定錯誤的根本原因。 如果您不希望此類問題再次發生,您可以隨時選擇流行的 WordPress 維護服務提供商之一的服務。

如果您喜歡視頻版本,請查看以下視頻:

進一步閱讀

  • 如何修復常見的 WordPress 登錄錯誤?
  • 如何保護 WordPress 登錄頁面?