WordPressでブログを運営していると、サイトのデザイン変更や、wp-config.php・functions.phpなどのPHPファイルの編集、WordPress本体・プラグインのアップデートなど、様々な作業が発生しますよね。
PHPファイルの編集やアップデートは慎重に行う必要がありますが、ときにはミスをして画面が真っ白になってしまうことも...(私は何度もやらかしました)
そのため動作確認用のステージング環境を用意している方も多いと思いますが、こんな悩みはありませんか?
- ステージングで加えた変更を手動で反映するのが面倒
- 手動で同期すると反映漏れが発生する
そんな問題を解決するために、コマンド1つで本番↔ステージング環境を同期できるwp-syncというツールを自作しました!
wp-syncとは
wp-syncは、WordPressの本番環境とステージング環境間で、DB・ファイルの同期をコマンド1つで行えるシェルスクリプトです。
GitHubで公開しています:https://github.com/hiroya232/wp-sync
あくまで自分で使うために作成したツールのため、ご使用は自己責任でお願いいたします。
wp-syncでできること
wp-syncには以下の機能があります。
| 機能 | 説明 |
|---|---|
| DB同期 | mysqldumpで直前のDBをバックアップ&同期 |
| ファイル同期 | rsyncで追加/更新/削除のあったファイルのみを同期 |
| ドメイン置換 | WP-CLIのsearch-replaceでDB内のドメインを自動置換 |
| wp-config.php切り替え | 環境に応じた設定ファイルを自動適用 |
| Basic認証 | ステージング環境へのBasic認証を自動設定/解除 |
| プラグイン管理 | 環境に応じたプラグインの自動有効化/無効化 |
| キャッシュ削除 | Redis, Autoptimize, WP-Optimizeのキャッシュを自動削除(同期時の不具合を軽減) |
| 自動ロールバック | エラー発生時は自動で元の状態を復元 |
これらをすべて自動でやってくれます。
使用イメージ
実際の使い方はシンプルです。
本番 → ステージング同期
wp-sync prd-to-stgBashステージング → 本番同期
wp-sync stg-to-prdBashたったこれだけで、DBとファイル(public_html)同期が完了します。
実行例
$ wp-sync prd-to-stg
[2025-12-27 16:58:00] [INFO] 本番 → ステージング同期を開始します...
[2025-12-27 16:58:00] [INFO] ログファイル: .wp-sync/logs/2025-12-27_165800_prd-to-stg.log
------------------------------ステージング環境バックアップ 開始------------------------------
[2025-12-27 16:58:00] [INFO] 【DBをバックアップ】
[2025-12-27 16:58:00] [SUCCESS] 【完了】
[2025-12-27 16:58:00] [INFO] 【public_htmlをバックアップ】
[2025-12-27 16:58:00] [SUCCESS] 【完了】
・
・
・
------------------------------後処理 完了------------------------------
[2025-12-27 16:58:56] [SUCCESS] 本番 → ステージング同期が完了しましたBash更新されたファイルの数にもよりますが、数十秒〜1分程度で同期が完了します。
前提条件
必要なツール
| ツール | 備考 |
|---|---|
| macOS / Linux | Windowsは未検証 |
| Bash | シェルスクリプト実行用 |
| rsync | ファイル同期用 |
| SSH | サーバ接続用 |
| WP-CLI | サーバ側にインストールが必要 |
WordPress配置
ステージング環境が本番環境のサブディレクトリに配置されている必要があります。
public_html/ ← 本番環境
├── wp-admin/
├── wp-content/
└── stg.example.com/ ← ステージング環境(サブディレクトリ)
├── wp-admin/
└── wp-content/導入方法
導入は以下の流れで行います。
- リポジトリをクローン
- PATHを設定
- 作業ディレクトリを作成
- 設定ファイルをコピー・編集
詳細な手順はGitHubのREADME.mdに記載しています。
初期設定は少し手間がかかりますが、一度設定してしまえばコマンド1つで同期できるようになります。
注意事項
あくまで自分で使うために作成したツールのため、不具合により予期しない動作をする可能性があります。
- ブログを始めたばかりでWordPressの知識があまりない方のご使用は非推奨です
- ご使用の際は事前に必ずバックアップ作成&リストア手順の確認をしてから実行してください
- 本ツールが原因で本番環境が壊れるなどした場合においても一切の責任は負いかねます
まとめ
本記事では、WordPressのステージング環境と本番環境をコマンド1つで同期できるツール「wp-sync」を紹介しました。
初期設定は少し手間がかかりますが、一度設定してしまえばコマンド1つで、DBやファイルなど必要なデータの同期が完了します。
手動での作業ミスを防ぎ、効率的にWordPressサイトを運用したい方はぜひ試してみてください。