[WordPress] Classic Editor 外掛把 WordPress 網站弄掛啦!

[WordPress] Classic Editor 外掛把 WordPress 網站弄掛啦!

今天家人緊急求助,

說 WordPress 網誌突然整個都無法運作了,

訪客進不去,管理頁面也進不去…

試著連看看,果真首頁就是 HTTP 500 Internal Server Error:

 

因為我們的 WordPress 網站都是架在 Google Cloud Platform 上

於是先連到 Google Cloud Platform 上的虛擬機器,

看了一下,記憶體使用量和磁碟剩餘空間似乎沒有太大的異常…

先直接放大絕,將機器重開機看看,

但問題並沒有解決…

 

查看一下 Bitnami 上的 Apache 記錄檔 (/opt/bitnami/apache2/logs/access_log),

蠻奇怪的是半夜前都還很正常 (HTTP 200 OK),

在某個時間點之後,所有的網頁存取就都變成 HTTP 500 Error…

難道是有駭客來攻擊,把網站搞爛了嗎?

但瞄了一下出問題的時間點附近的 access_log,

都只是很普通的網頁 HTTP GET 請求而已,存取頻率也不高…

(當然攻擊是可以含在 HTTP Header 裡面,不過先沒探究那麼多)

 

看了一下 /opt/bitnami/apache2/logs/error_log,

裡面是有一些像是 PHP 的 exception,

從 exception 本身不能很確定是哪裡,查了關鍵字像是某個外掛,

但管理頁面進不去,要怎麼關掉外掛呢?

 

其實關掉的方法很簡單,只要可以連上 WordPress 的機器,

把那外掛的目錄移走就行了~

像 GCP 上的 WordPress 網站外掛目錄是

/opt/bitnami/apps/wordpress/htdocs/wp-content/plugins,

只要用 Google Cloud Platform 上的 SSH 功能 (或 gcloud ssh) 連上機器,

再執行類似下面的指令,

就會把名為 plugin_name 的外掛移到 _bad 目錄下:

cd /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins
sudo mkdir _bad
sudo mv plugin_name _bad/

 

移走了我本來懷疑的外掛,再重新整理頁面,還是一樣 HTTP 500 error…

實在也沒什麼辦法,決定把所有外掛都關掉看看:

sudo mv * _bad/

 

結果居然有用!網頁回來了,也可以進去管理頁面,

看來應該是某個外掛出了問題…

要找出是哪個外掛有問題,最笨但也最有效的方法,

就是一個個把外掛移回正常目錄,看看網頁是不是會掛掉:

sudo mv _bad/updraftplus/ ./
sudo mv _bad/search-regex/ ./
sudo mv _bad/google-analytics-for-wordpress/ ./
sudo mv _bad/gutenberg/ ./
sudo mv _bad/classic-editor/ ./

 

就當我執行到將 classic-editor 移回正常外掛目錄下時,網頁就壞掉了!

看來 Classic Editor 傳統編輯器外掛就是元兇了:

 

這個 Classic Editor 是什麼東西呢?

WordPress 5.0 之後,預設的編輯器換成了 Gutenberg

不過老實說我用不習慣,而且我常常需要在文章中插入原始碼,

Gutenberg 似乎並不方便作到這件事…

所以我和家人都是裝了這個 Classic Editor 外掛,

讓 WordPress 5.0 可以預設使用舊的編輯器…

 

而 Classic Editor 的更新時間,是 11 個小時前,

蠻像是開始出事的時間前後。

至於為什麼我自己的網誌,同樣使用 Classic Editor 卻沒事,

就不得而知了,可能程式裡要遇到某些狀況才會出事吧

(這種事對工程師來說已經司空見慣,

客戶的問題就是怎樣都無法在我們的機器上重現… XD)

 

關掉了 Classic Editor,自然家人就開始哀嚎說 Gutenberg 很難用…

本來想說要找找看 Classic Editor 的舊版看有沒有用,

結果在外掛區看到另外一個外掛 Disable Gutenberg

使用人數沒有 Classic Editor 那麼多,但也有六萬以上:

 

看了一下 Disable Gutenberg 的說明,

做的事情和 Classic Editor 一模一樣,但多了些進階組態功能。

把它裝起來瞧瞧,舊的編輯器回來了,而且網頁也沒有掛掉!!

真是太棒了,總算完美的解決了這次的停機災難…

把這事件記錄一下,說不定不久之後,

我自己的網誌就也要換成用 Disable Gutenberg 了也說不定… Orz

 

參考資料:Bitnami: Debug Apache Errors

(本頁面已被瀏覽過 566 次)

2 thoughts on “[WordPress] Classic Editor 外掛把 WordPress 網站弄掛啦!

  1. 幫補充,如果是 TinyMCE 的使用者,TinyMCE 有內建的關閉 Gutenberg 的功能。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料