跳到主要內容

如何修復 WordPress 出現 500 Internal Server Error 的解決方法

你是否在 WordPress 當中遇到 500 Internal Server Error 的錯誤問題呢?500 Error 是常見的 WordPress 錯誤之一,而當初學者遇到這個問題導致網站崩潰時,往往會不曉得該如何修復 500 Internal Server Error 的錯誤。因此,在今天的教學當中,要來教你 500 Internal Server Error 發生的原因,以及該如何修復 500 Error 的問題

WordPress 新版本 500 Error 通知

在 WordPress 5.2 版本之後,當網站遇到 500 Error 的錯誤問題時,會返回「通知:網站遭遇技術性問題」的畫面,同時也會寄送一封 Email 通知到管理員的信箱中。

通知:網站遭遇技術性問題
通知:網站遭遇技術性問題

為何會發生 500 Internal Server Error?

500 Internal Server Error 指的是內部伺服器錯誤,不管你的網站是不是採用 WordPress 系統,任何放在伺服器當中的網頁都有可能發生這種錯誤。

當這種內部伺服器錯誤的情況發生時,是不會告訴你任何發生的原因,因此一般人往往不曉得該如何找出此錯誤的發生原因。

網路中有許多不同類型的錯誤代碼,例如:500502503504…等等,每一種錯誤代碼都表示不同的錯誤。在 500 Internal Server Error 的錯誤的情形下,表示伺服器遇到意外的情況,無法返回客戶端主機的請求。

而在 WordPress 網站當中,這個錯誤通常是由外掛與佈景主題所引起的,另外也有可能是由 .htaccess 檔案損壞與 PHP 內存限制索導致的。

除了此錯誤之外,你的網站也可能常常會出現各種不同的錯誤代碼,以下是常見的錯誤代碼以解決方式:

下面來讓我們看看還有哪些常見的 500 Error 錯誤的顯示方式。

常見的 500 Internal Server Error 顯示方式

由於各種 Web 伺服器、作業系統與瀏覽器的不同,這個錯誤會以不同的方式呈現出來,但你可以確定的是其代碼都會呈現 500。以下是常見的 500 錯誤代碼顯示方式

  • “500 Internal Server Error”
  • “HTTP 500”
  • “Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “500 Error”
  • “HTTP Error 500”
  • “500 – Internal Server Error”
  • “500 Internal Server Error. Sorry something went wrong.”
  • “500. That’s an error. There was an error. Please try again later. That’s all we know.”
  • “The website cannot display the page – HTTP 500.”
  • “Is currently unable to handle this request. HTTP ERROR 500.”

如果是較大型的公司,有時他們也會擁有自己客製化的 500 Internal Server Error 顯示方式:

Airbnb 500 Internal Server Error
Airbnb 500 Internal Server Error
Youtube 500 Internal Server Error
Youtube 500 Internal Server Error

以下是常見的 500 Error 中的各種回應碼的解釋:

500 內部服務器錯誤列表
回應碼 錯誤說明
500.0 發生模塊或 ISAPI 錯誤。
500.11 應用程序正在關閉 Web 服務器。
500.12 應用程序正忙於在 Web 服務器上重新啟動。
500.13 Web 服務器太忙了。
500.15 不允許直接請求 Global.asax。
500.19 配置數據無效。
500.21 模塊無法識別。
500.22 ASP.NET httpModules 配置不適用於託管管道模式。
500.23 ASP.NET httpHandlers 配置不適用於託管管道模式。
500.24 ASP.NET 模擬配置不適用於託管管道模式。
500.50 RQ_BEGIN_REQUEST 通知處理期間發生重寫錯誤。發生配置或入站規則執行錯誤。
500.51 GL_PRE_BEGIN_REQUEST 通知處理期間發生重寫錯誤。發生全局配置或全局規則執行錯誤。
500.52 RQ_SEND_RESPONSE 通知處理期間發生重寫錯誤。發生了出站規則執行。
500.53 RQ_RELEASE_REQUEST_STATE 通知處理期間發生重寫錯誤。發生出站規則執行錯誤。規則配置為在輸出用戶緩存更新之前執行。
500.100 內部 ASP 錯誤。

500 Internal Server Error 對 SEO 的影響

和 503 Error 不同,如果 500 Error 不立即進行修復,很快你的錯誤就會導致網站排名下降的負面影響。當 Google 索引你的網站卻不斷回傳 500 Error,你本來的 SEO 排名就很有可能會受到影響。

如果網站在短時間內發生 500 Error 的問題,是不會導致太大的影響。但如果這種錯誤問題的發生時間過長(一週以上),那麼 Google 就有可能會將這個頁面視為是已經不存在的頁面,進而影響你的網站排名

如果你擔心 500 Error 會為你的網站帶來重大損失,那麼你應該好好了解它的發生原因,以及當你遇到的時候,該如何去一一解決這些問題。

如何修復 500 Internal Server Error

如果你的 WordPress 網站出現 500 Error 的錯誤訊息,應該如何排除此問題?如果沒有相關的技術背景,一般的新手可能會被搞得一個頭兩個大。就像剛剛說過的,通常這個問題是源自於 WordPress 主機與資料庫出現問題。因此,下面會提供常見的 500 Internal Server Error 發生問題,以及其各自的解決方法,相信可以提供你一些幫助,讓你的網站能夠立刻恢復正常。

重新載入

當遇到 500 Internal Server Error 時,最常見的錯誤都是因為網站的 WordPress 主機短暫的故障所引起的。因此,通常只需要給它幾分鐘,再重新整理你的網站即可恢復正常。

如果你發現這個問題可以藉由此方式就解決,那麼通常你就不需要再採取近一步的動作。但如果這個問題一直不斷重複發生,那麼很有可能是因為 WordPress 主機或資料庫的問題所導致。

如果你不曉得 500 Error 是否是你的電腦才會發生,你可以使用「https://downforeveryoneorjustme.com/」來檢查。這個網站會告訴你所查詢的網站是否是無法訪問,還是只有你才無法訪問。

使用「downforeveryoneorjustme」來檢查是否只有你無法訪問網站
使用「downforeveryoneorjustme」來檢查是否只有你無法訪問網站

有時,當你正在進行網站佈景主題更新與外掛更新後,你的網站會立即出現短暫 500 Error 的問題。這是由於主機 CPU 與記憶體瞬間負荷超過限制所導致。這尤其常發生在低規格的 WordPress 主機上。如果你想完全杜絕這個問題,那麼則需要挑選好一點的虛擬主機來存放你的網站

你可以藉由我的虛擬主機評測文章來了解各家主機商的介紹與測試報告

2023 年 WordPress 虛擬主機推薦懶人包 – 熱門 17 個 WordPress 主機費用、速度與方案完整評價與教學

https://web.archive.org/web/20230315183024if_/https://techmoon.xyz/hosting-reviews/embed/#?secret=GNxKdBvSSh#?secret=3jFIhpejmW

檢查 .htaccess 檔案

對於 WordPress 網站來說,當出現 500 Internal Server Error 的錯誤時,首先可以先檢查你的 .htaccess 檔案。

你可以藉由重新命名你的 .htaccess 檔案,並重新產生一個新的檔案來進行故障排除。

你可以通過 cPanel 控制面板進入網站的資料夾去找到 .htaccess 檔案,也可以透過 FTP、SFTP 的方式,進入 WordPress 所在的主機伺服器當中找到。

重新命名 .htaccess 檔案名稱
重新命名 .htaccess 檔案名稱

進入後,你可以在根目錄當中看到 .htaccess 檔案,將其重新命名為「.htaccess_old」,並重新上傳一個預設的 .htaccess 檔案。

你可以前往 WordPress 官網查看預設的 .htaccess 檔案內容

或者,你也可以先不用上傳新的 .htaccess 檔案。在你重新命名之後,嘗試重新訪問你的 WordPress 網站,看看是否能夠排除 500 Error 的問題。如果可以,那麼你只需要進入網站後台的控制台 > 設定 > 永久連結,在該頁面當中點擊「儲存設定」按鈕,WordPress 就會自動生成一個新的 .htaccess 檔案了。

如果這個方法並不能解決你的問題,那麼再接著繼續往下看。

增加 PHP 記憶體限制

如果你的 PHP 記憶體達到上限,那麼有時也是導致發生 500 Internal Server Error 的原因。要解決這個問題,只需要增加 WordPress 的 PHP Memory Limit 即可。

如果這個 500 Error 的錯誤只發生在登入 WordPress 的後台頁面中,那麼你就可以透過以下步驟來增加 WordPress 的 PHP 記憶體上限,來解決這個問題:

  1. 進入 wp-config.php 檔案
  2. 添加以下程式碼:define( 'WP_MEMORY_LIMIT', '256M' );
  3. 保存設定
透過 wp-config 檔案增加 PHP 內存記憶體上限
透過 wp-config 檔案增加 PHP 內存記憶體上限

或者,如果你是使用 VPS 主機,你也可以透過修改 PHP.ini 檔案的方式來 Increase PHP Memory Limit:

  1. 進入伺服器根目錄
  2. 修改 PHP.ini 檔案(如果沒有,則手動建立一個空白的 PHP.ini 檔案)
  3. 添加以下程式碼:memory_limit = 256M
  4. 保存設定

除了上述兩種方式可以增加 PHP Memory Limit 之外,你也可以透過修改 .htaccess 檔案來增加 PHP 記憶體上限:

  1. 進入伺服器根目錄
  2. 修改 .htaccess 檔案
  3. 添加以下程式碼:php_value memory_limit 256M

以上就是常見的三種增加 PHP 記憶體上限的方法,只需要挑其中一種使用即可。

如果你可以透過增加記憶體限制來解決 500 Error 的問題,那麼你只是暫時解決了這個問題,而非根治。最好的做法是,找出耗盡你網站 PHP 記憶體的原因,如此才是正確的 Debug 作法。

如果 Increase PHP Memory Limit 並沒有解決 500 Internal Server Error 的問題,那麼我們再接著往下看。

停用所有 WordPress 外掛

WordPress 之所以強大,是源自於外掛的擴充性,而這往往也是問題發生的源頭。

如果你的網站發生了 500 Error 的錯誤,不妨試著先停用所有的外掛,或許是其中一個外掛、或是外掛之間的相容性錯誤,導致了網站出現 500 Internal Server Error 的問題。

由於你的網站無法正常訪問,因此你只能透過 cPanel 之類的控制面板來進入主機資料夾。或是透過 FTP、SFTP 的方式,進入主機伺服器。

進入 WordPress 伺服器後,在「wp-content」資料夾中找到「plugins」資料夾,並將其重新命名為「plugins_old」,即可停用所有 WordPress 外掛。

更改 plugins 資料夾名稱即可禁用所有 WordPress 外掛
更改 plugins 資料夾名稱即可禁用所有 WordPress 外掛

要找出由 WordPress 外掛所引起的 500 Error 唯一的方法,就是先停用所有的外掛,如果停用後你就能正常訪問網站,那麼再逐一啟用,以找出導致 500 Error 的罪魁禍首。

重新上傳 WordPress 核心檔案

如果上面的方法都沒有修復 500 Error 的問題,那麼你可以試試重新上傳 WordPress 核心檔案來解決這個問題。

重新上傳 WordPress 核心檔案不會修改、刪除或影響你原本網站的內容,因此你不必擔心重新上傳會導致資料不見。

你可以進入 WordPress.org 網站找到最新的 WordPress 核心檔案,並將其下載下來。

進入 https://wordpress.org/download/ 頁面後,就會顯示當前最新的 WordPress 版本載點:

在 WordPress.org 官網下載最新版本的核心檔案
在 WordPress.org 官網下載最新版本的核心檔案

接著解壓縮後,你只需要將其中的「wp-includes」與「wp-admin」這兩個資料夾上傳並覆蓋你目前的主機檔案,如此一來就大功告成了。

尋求主機商的幫助

若以上方法你都試過,且都無法解決 500 Error 的問題,那麼你可以聯絡你所購買的主機商,尋求客服技術支援的協助,來幫你找出發生的原因,並解決 500 Internal Server Error 的問題。

希望今天的教學可以幫助你修復 500 內部伺服器錯誤的問題。如果你還想看其他 WordPress 教學,不妨在底下留言告訴我,我會盡快回覆並提供新的內容。



from TechMoon 科技月球 - https://techmoon.xyz/500-internal-server-error/

留言

這個網誌中的熱門文章

SendPulse - 整合 Email 電子報寄送、SMS 簡訊發送、Web Push Notification 網站瀏覽器推播、SMTP 協議服務,全方位的數位行銷工具 – TechMoon

SendPulse - 整合 Email 電子報寄送、SMS 簡訊發送、Web Push Notification 網站瀏覽器推播、SMTP 協議服務,全方位的數位行銷工具 – TechMoon : SendPulse 的功能相當齊全,僅僅一個線上工具就彙集了 Email 清單建立與寄送、SMS 簡訊寄送、Web Push 即時消息推播以及提供 SMTP 協議的提供,如此強大且齊全的工具集於一身,讓你使用與操作起來非常方便且實用。

GOFUNCO – 辦公軟體限時特惠,Windows 10 序號$170 起,Office軟體 NT$700 起可免費升級至 Windows 11

隨著疫情的瞬息萬變,工作模式在這一年都有了很大的變化,多數人可能都不能在辦公室,無論是企業還或者員工個人,都不得不適應這種變化。在自己的住所處理公務,也需要特殊的設備支持,從桌椅、個人電腦、上網、溝通聯絡、多人協同作業,大多必須由員工自己在短時間內設法就緒。 from TechMoon 科技月球 - https://techmoon.xyz/gofunco-windows-10-office-windows-11/

什麼是 Waiting TTFB 加載時間過長? 3 步教你如何在 WordPress 當中優化 TTFB 速度 – TechMoon 科技月球

什麼是 Waiting TTFB 加載時間過長? 3 步教你如何在 WordPress 當中優化 TTFB 速度 – TechMoon 科技月球 : TTFB 是 Time To First Byte 的縮寫,意思是 Web 瀏覽器在造訪網站後,接收到伺服器回應數據的時間,也就是當使用者的滑鼠點擊網站的那一刻開始,到接收到一個數據資料之間所等待的時間,稱之為 TTFB。