[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
2 thoughts on “[WordPress] Classic Editor 外掛把 WordPress 網站弄掛啦!”
幫補充,如果是 TinyMCE 的使用者,TinyMCE 有內建的關閉 Gutenberg 的功能。
感謝資訊提供~^^