WP-CLIで日々の運用を時短しつつ安全性も担保したい人向けに、バックアップ→置換→権限調整の順で“そのまま使える”最短手順をまとめます。
現場で迷いがちなコマンド選定や実行順を整理し、WP-CLIとLinux標準コマンドだけで完結できる形にします。
まずは失敗しないための前提を押さえ、確実にロールバックできる状態で進めましょう。
定型タスクを効率化するための基本方針
結論はシンプルで、毎回同じ順序とチェックを機械的に回すことです。
具体的には「バックアップ→置換→権限」の順を固定し、ドライランとロールバック点を必ず用意します。人の判断を減らし、WP-CLIとシェルで再現可能な“手順書=スクリプト”に落とし込むと、作業は安定しミスも減ります。
安全運用の前提「バックアップ→置換→権限」の順序
最初にDBとファイルを確実に退避してから、wp search-replaceなどの破壊的変更に進み、最後にパーミッションを整えます。順序を崩すと、復旧不能や権限エラーでの手戻りが発生しやすくなります。各工程は“検証→実行→検証”の三点セットで、置換は--dry-run、権限はサンプルファイルでの確認を挟むと安全です。
テスト環境とロールバック手段の確保
本番と同一バージョンのPHP/WordPress/プラグインで構成したステージングを用意し、同じコマンド列で事前検証します。ロールバックは「DBインポート(wp db import)+wp-contentの復元」を1コマンドずつ戻せる形で準備し、バックアップの保管先(同一サーバー/外部ストレージ)と保持世代もあらかじめ決めておきます。
作業前後で
wp core verify-checksumsなどの整合性確認を取ると、異常の早期発見に役立ちます。
DBとファイルのバックアップを最短で取得する方法
バックアップは定型タスクの出発点です。WP-CLIなら1行でDBのエクスポートが可能で、さらにLinux標準の圧縮コマンドを組み合わせれば、ファイルも含めて短時間で取得できます。ここでの目標は「最短で戻せる状態」を確保することです。
wp db exportでのDBダンプ
データベースは以下のコマンドで簡単に書き出せます。
wp db export ~/backup/db-$(date +%F).sql
日付付きで保存すれば、いつのバックアップか一目で判別できます。復元は逆に wp db import を使うだけです。オプション --add-drop-table を付けておくと復元時に古いテーブルが削除され、競合を避けられます。
wp-contentの圧縮とローテーション管理
ファイルは tar を使って一括保存します。
tar -czf ~/backup/wp-content-$(date +%F).tar.gz wp-content
これによりテーマ・プラグイン・アップロードファイルがまとめて退避できます。複数世代を残す場合は find と -mtime を組み合わせて古いファイルを削除すると便利です。
例:30日以上前のバックアップ削除
find ~/backup/ -type f -mtime +30 -delete
バックアップの取得とローテーションをcronに登録しておけば、人手をかけずに継続運用できます。
関連手順はWordPress バックアップ手順も参考になります。
search-replaceでのURL置換と注意点
WordPress移行やSSL化の際に欠かせないのが wp search-replace です。手動でSQLを書かずとも、シリアライズデータにも対応して置換できるため、安全性と効率性が高いのが特徴です。ただし、実行前の確認を怠ると取り返しがつかないため、段階を踏んで進める必要があります。
--dry-runでの確認と対象テーブルの限定
まずは必ずドライランで実行します。
wp search-replace 'http://old.example.com' 'https://new.example.com' --dry-run
この時点で置換件数や対象が表示され、実際には書き換えられません。さらに --all-tables-with-prefix ではなく、--url や --network を指定して範囲を絞るとリスクが減ります。置換対象が多い場合はテーブルごとに実行し、ログを残すと後の検証も容易です。
シリアライズデータ対応のメリット
WordPressはウィジェットやプラグイン設定でシリアライズデータを多用します。SQLで無理に置換すると破損しますが、wp search-replace は内部でシリアライズを解釈しながら安全に書き換えてくれるのが大きな利点です。特にURL変更やパス差し替えでは欠かせない存在です。
詳しい解説はURL置換のやり方を確認すると安心です。
パーミッション・所有権をWP-CLIとLinuxコマンドで整える
最後に押さえておきたいのがファイルの権限管理です。
WordPressの動作不良やセキュリティリスクの多くは、誤ったパーミッションや所有権設定が原因になります。WP-CLIは権限そのものを変更する機能は持たないため、Linux標準コマンドと併用するのが実務的な最短ルートです。
推奨権限値(644/755)の適用
一般的に推奨されるのは「ファイル=644」「ディレクトリ=755」です。次のようにまとめて設定できます。
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
プラグインやテーマのアップデートがエラーになる場合も、この設定で解決することが多いです。書き込みを許可する必要がある一部ディレクトリ(例:wp-content/uploads)は、別途グループ書き込み権限を与えます。
WebサーバーユーザーとSFTPユーザーの整理
所有権は「Webサーバーが実行するユーザー(例:www-data)」と「管理者がSFTPでアクセスするユーザー」のバランスを取ることが大切です。
chown -R www-data:www-data /var/www/html
SFTPでの更新も行うなら、共通のグループに所属させて g+rw を付与する方式が安全です。詳細はパーミッションの正解の記事も参考になります。
まとめと自動化への発展
WP-CLIの導入方法を押さえておけば、本記事で紹介した「バックアップ→置換→権限調整」のテンプレをそのまま自動化に発展できます。基礎を理解したうえでシェルスクリプト化すると、毎回の入力作業を削減でき、ヒューマンエラーを防ぐ効果も大きいです。
シェルスクリプト化とcronへの応用
DBエクスポートやwp search-replace --dry-run、権限調整コマンドをまとめて1本のスクリプトにします。さらにcronへ登録すれば、夜間や週次など任意のタイミングで定型処理を自動実行可能です。例えば「毎週日曜深夜にバックアップ+30日以上前を削除」といった運用が一行で完結します。
詳しい仕組みはcron設定のコツも参考になります。
監視・通知システムとの連携
バックアップ失敗や置換件数の異常を見逃さないために、監視システムやSlack通知を組み込むと運用品質が上がります。エラーコードを拾って通知するだけでも、復旧の初動が早くなります。
WP-CLIは単なる便利コマンドにとどまらず、システム運用の基盤に組み込める強力なツールです。基本を押さえておけば、定型タスクはすべて自動化の候補となります。まずはシンプルなバックアップスクリプトから導入して、段階的に拡張していくのがおすすめです。


コメント