WP-CLI 教學:安全更新 WordPress、備份資料庫與批次管理

WP-CLI WordPress 批次管理與資料庫備份示意圖

WP-CLI 讓管理員在終端執行 WordPress 核心、外掛、主題、資料庫、使用者和內容操作。它適合自動化與大量網站管理,但命令會直接改變正式資料。可靠做法不是背誦命令,而是先確認網站、備份、預覽變更,再以最低權限執行。

先確認目前網站路徑

進入正確 WordPress 根目錄,或使用明確 `–path` 指定位置,再查看核心版本和網站 URL。多網站伺服器很容易在錯誤目錄執行相同命令。不要只依終端提示名稱猜測目標。

避免使用最高系統權限

以擁有網站檔案的受限帳戶執行,避免長期使用 root 或強制繞過安全檢查。檔案擁有者錯誤會令 WordPress 無法更新或產生新媒體。若主機要求特定使用者,依其文件切換。

先查看說明和版本

使用 `wp help` 查閱命令、參數與範例,並以 `wp cli info` 或版本命令確認環境。不同 WP-CLI、WordPress 和外掛版本支援的子命令可能不同。不要直接複製多年以前的網上範例。

更新前建立兩類備份

資料庫匯出只保存內容和設定,不包含上載、主題與外掛檔案;檔案備份亦不能代替資料庫。更新前同時保存兩者到網站根目錄以外的位置,並確認備份檔案可讀及有足夠空間。

使用資料庫匯出而非危險捷徑

`wp db export` 可使用 `wp-config.php` 中的連線資料輸出資料庫。檔名加入網站和日期,但不要放入公開 Web 目錄。匯出後檢查檔案大小和結尾,重要網站還要在隔離環境實際還原。

先列出待更新項目

分別查看核心、外掛和主題更新,不要一次把所有項目盲目升級。閱讀重大版本相容性、PHP 要求和已知問題。先在 staging 執行,並記錄更新前後版本,方便定位是哪一項造成故障。

核心更新後檢查資料庫

更新 WordPress 核心檔案後,部分版本需要執行資料庫升級。先查看是否需要更新或使用 dry-run 能力,再執行正式程序。Multisite 應使用適合網絡的選項,不能只更新主站資料庫。

驗證核心檔案完整性

`wp core verify-checksums` 可把核心檔案與官方 checksum 比較,協助找出被修改或多出的可疑檔案。它不能掃描所有外掛、主題或媒體,也不能證明網站沒有入侵;異常結果需要進一步調查。

外掛更新採用小批次

先更新低風險項目並測試前台、登入、編輯、表單和排程,再處理電商、快取或安全外掛。不要在無人監察時自動更新所有付費外掛。更新失敗時應按備份和版本策略回復。

Search-replace 必須先預覽

搬站或更換網域時使用 `wp search-replace`,它能處理序列化資料,但仍可能改到不應變更的欄位。先使用 dry-run 查看數量,排除 GUID 或特定資料表按實際遷移方案決定,並保存資料庫備份。

快取清除要知道層級

WP-CLI 可清除部分 WordPress cache 或 transient,但頁面快取、Redis、主機快取和 CDN 可能是不同系統。不要看到舊內容便反覆清除所有層。先找出資料實際保存位置,再執行最精確的清除。

使用 Alias 管理多個網站

WP-CLI alias 可為正式站、測試站和遠端主機建立清楚名稱,減少長參數重複。但 alias 也會令命令更容易作用到遠端正式環境。命名加入環境提示,破壞性操作前再次輸出目標 URL。

自動化腳本遇錯要停止

批次腳本應檢查每個命令退出狀態,失敗時停止後續更新,而不是繼續把網站推到未知狀態。保存開始時間、版本和結果,但不要把資料庫密碼或 Secret 寫入日誌。安排維護窗口和通知。

警惕破壞性資料庫命令

WP-CLI 包含刪除、重設、清理和直接查詢等高風險命令。正式站不要依靠互動提示作唯一保護,應限制帳戶權限、分開環境和保留備份。命令目標或變數不清楚時立即停止。

結語

安全使用 WP-CLI 的順序是:確認網站與執行帳戶、建立可還原備份、列出變更並在 staging 測試,再小批量執行和驗證。把命令、版本、退出狀態及回復程序納入同一工作流程,才能把速度轉化為可靠管理。

«
»
  • WordPress Navigation Block 主選單、子選單與手機導覽示意圖
    July 27, 2026
  • WordPress 留言審核、垃圾訊息封鎖與通知設定示意圖
    July 27, 2026
  • WooCommerce 訂單狀態由待付款到已完成的工作流程示意圖
    July 27, 2026
  • Cloudflare Rate Limiting 保護 WordPress 登入與 API 請求示意圖
    July 27, 2026
  • WooCommerce 付款閘道選擇、測試模式與正式收款示意圖
    July 27, 2026
  • WordPress Redis 與 Memcached 持久物件快取設定及清理示意圖
    July 27, 2026
  • WooCommerce 全額與部分退款、庫存回補及付款核對示意圖
    July 27, 2026
  • WordPress Site Health 網站健康檢查與問題排查示意圖
    July 27, 2026
  • WordPress Navigation Block 主選單、子選單與手機導覽示意圖
    July 27, 2026
  • WordPress 留言審核、垃圾訊息封鎖與通知設定示意圖
    July 27, 2026
  • WooCommerce 訂單狀態由待付款到已完成的工作流程示意圖
    July 27, 2026
  • Cloudflare Rate Limiting 保護 WordPress 登入與 API 請求示意圖
    July 27, 2026
  • WooCommerce 付款閘道選擇、測試模式與正式收款示意圖
    July 27, 2026
  • WordPress Redis 與 Memcached 持久物件快取設定及清理示意圖
    July 27, 2026
  • WooCommerce 全額與部分退款、庫存回補及付款核對示意圖
    July 27, 2026
  • WordPress Site Health 網站健康檢查與問題排查示意圖
    July 27, 2026