
你看看,登進去後居然主動提醒我這件事,實在是丟臉。
早先時候想說先升級到 PHP 7.4 來試試看,所以升級到這個版本後就一直放著沒有繼續管,運作起來其實也沒什麼問題,各項外掛也都好好的正常執行,這件事就沒放在心上。
只是今天想要寫文章,進來一看才發現其實 WordPress 已經示警,要求升級 PHP 的版本,不過說實在我這次有點懶得花時間親自處理這件事,畢竟要升級(而且還是在 Production site 上)要做的檢查工作跟準備也不算少,一來最好是需要有一個 Staging 環境可以測試(或者至少要有 daily backup 並且搭上完好的 rollback 機制),二來除了 PHP 的升級外還要考慮到 WordPress 外掛的支援程度有沒有到,不是說單純跑個 apt upgrade php 就可以了,各項檢查與備援機制可不能少。
不要看我敢直接在 production 上跑,我是本身就有開 VPS 的 Weekly backup & 自己有寫程式進行 Daily backup ,不然可不能直接這樣做,到時遇到問題會很麻煩的!
而且今天想說不知道 AI 可不可以接手協助處理,剛好發現 Claude Desktop 的 Claude Code 有辦法直接 SSH 連線到遠端處理,就來試試看這個功能。

如圖示,我在新增了自己的 SSH host 後讓他先連進去檢查當前系統狀況,並且根據當前狀況去安排升級計劃。
因為這個 PHP 我是用 php-fpm 的方式掛著,所以可以在不同的 Virtual Host 上跑不同版本的 PHP ,也算是一個試驗啦~

等他跑完多了下面這些資訊出來,可以看到它不是單純檢查 PHP 版本而已!

我很意外,它看來是先去找 Virtual Host 的設定看裡面有哪些 enable conf ,然後再反推去找哪些是 PHP site ,這一點也是挺聰明的,而且還會分析 wp-config.php 以及找出之前為了測試 certbot 所以有同一個站好幾個 conf 的問題,所以想說趁這次機會一起處理掉

它就去檢查了一下這三份 conf 的內容並且列出有問題的地方

這下有趣了,果然趁此機會把它合併是一件對的事,就請他產出 script 讓我用 sudo 處理

產出的 script 我就不貼了,但是如果你也想這樣做的話我希望你可以將他產出的 script 貼去不同的 Session 或不同的 AI 讓它去驗證這個 script 的安全性。
把產出的 script 檔案貼到另外一個 AI 中,並且告訴他這個檔案主要目的是解決什麼內容(或者你也可以請你的 AI 產出提示詞去讓另一個 AI 驗證),這樣才能夠清楚知道這個檔案是否有風險、邏輯錯誤、少做什麼事之類的。
這樣的一個升級不是單純把檔案下載下來就好,還有你得去驗證外掛是否安然無恙,所以升級完記得每一個外掛都點進去看看、網站也要跑一下看看有沒有出現 Error 500 的錯誤訊息跳出來,我後來執行完之後各項問題都排除了,整個網站也都還正常
重點是原本可能要花半小時才做完而且還有可能有 side-effect 的,現在只要五分鐘就可以安全結束,其實是蠻驚人的!
Sanity Check 一下當前設定

果然有這份檔案

的確是 PHP 8.3 了

Cert 也更新了
果然 Claude Code 全部替我做完了,完全省下開發 script 以及檢查環境的時間,這樣的效果真心感覺不錯
寫在後面
雖然不是第一次用 AI 來修復我的網站,但是這一次臨時想到要記錄一下,就當作是跟各位分享一個操作的過程與手法
但我會建議,如果你想要自己做,一定要先跟 AI 討論清楚流程要怎麼走、要怎樣驗證每一個 stage / task 是否正確執行、有沒有辦法做回滾機制,畢竟網站系統的版本升級不是一件小事情,用一兩個 AI 交叉討論一下絕對不會是壞事!
如果你也有一臺放了很久沒動的 WordPress ,想知道現在升級會不會炸掉,可以寫信到 [email protected] 來跟我聊

發佈留言