Last Updated on 2026-10-22 by william
今天(2026/10/22)一醒來就撲天蓋地看到 php 出現重大漏洞,分數高達 9.2 分,連日本首相都轉發,認定是國安危機,我查了一下本站,居然也是災戶 wordpress php 8.4.11 ,需升級到 8.4.27。

因為本站使用 反向代理 + docker wordpress,有安裝 WPvivid 外掛,進行網站備分,也支援線上還原,因此簡單紀錄一下還原過程。
- mysql 建立資料庫名稱
- 安裝新版網站 docker wordpress
我安裝 7.3.1-php8.5 版,這版使用 php 8.5.12 最新補丁的版本 - 新網站安裝 WPvivid 外掛,並啟用 WPvivid 金鑰,把金鑰給目前網站
- 到目前網站,進入 WPvivid 設定後,輸入新網站 WPvivid 金鑰,就可以執行線上移轉
- 移轉完畢,到新的網站,進入 WPvivid 設定,會看到一份已上傳的備份資料
此步驟非常重要,到”設定->一般”,把原本 ip 改掉,改成原本的網域名稱,改完會立即無法連線,需修改反向代理程式 - 到反向代理那邊,將原本指向目前舊網站的網址,改成指向新網站的,這樣才可以登入新的網站,再將新網站裡面的備份資料還原生效
php2shell 需修補版本

我發現升級 wordpress 的方式遇到一個問題,有些連結還是用 ip,只好補救,方式如下( apache httpd )
ProxyPass / http://192.168.1.1:8086/
ProxyPassReverse / http://192.168.1.1:8086/
# ...
# ...
# 移除壓縮請求,確保 Apache 可以解析 HTML 來進行替換
RequestHeader unset Accept-Encoding
# 指定過濾器套用的檔案類型
AddOutputFilterByType SUBSTITUTE text/html text/css application/javascript application/json text/plain
# 將網頁內的 ip 改成網站名稱
Substitute "s|192.168.1.1:8086|kafeiou.pw|i"以上方式滿好用的,AI 則是建議使用 Better Search Replace 外掛,或是購買 WPvivid 專業版,專業版可以直接修改網域,若網域要改名的話。
公司先前要過 MDR eIFU 稽核,程序書裡面加上須在測試網站測試完畢才能上架到官方網站,但當時沒有時間做測試網站,就利用改名方式把測試網站連結到官方網站,這樣就變成兩個網站了,但實際上是同一個,會這樣做也是不得以的,wordpress 似乎會把網域寫死在資料庫裡。
SSLCertificateFile /etc/letsencrypt/live/test.kafeiou.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test.kafeiou.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/test.kafeiou.com/fullchain.pem
# 將測試網站 test.kafeiou.com 導到正式網站 www.kafeiou.com
ProxyPass / https://www.kafeiou.com/
ProxyPassReverse / https://www.kafeiou.com/
# 將官網的 cookie 也反向代理,改成 test.kafeiou.pw
ProxyPassReverseCookieDomain test.kafeiou.com www.kafeiou.com
# === 替換網頁原始碼 (HTML Body) 中的字串 ===
# 移除壓縮請求,確保 Apache 可以解析 HTML 來進行替換
RequestHeader unset Accept-Encoding
# 指定過濾器套用的檔案類型
AddOutputFilterByType SUBSTITUTE text/html text/css application/javascript application/json text/plain
# 將網頁內的 www 絕對網址替換為 test
Substitute "s|www.kafeiou.com|https://test.kafeiou.com|i"
