2026年5月23日
2026年5月23日
WordPressでステージング環境を構築する方法・本番反映の安全な手順
はじめに
「テーマの大幅変更を本番で直接試して壊してしまった」「プラグインのアップデートをテストする場所がない」——ステージング環境があれば、変更を安全にテストしてから本番に反映できます。
症状・原因
WordPressの変更(テーマ・プラグイン更新・大規模カスタマイズ)を直接本番に適用すると、表示崩れやサイトダウンのリスクがあります。ステージング(検証)環境を用意することで、本番への影響なしに事前テストができます。
解決手順
ステップ1:プラグインでステージングを作成する
【ホスティング提供のステージング機能(推奨)】
ConoHa WING:
管理画面 → ステージング環境 → 作成
→ staging.example.com で自動構築
エックスサーバー:
サーバーパネル → WordPress簡単移行
または WP簡単ステージング(プラグイン)
SiteGround / Kinsta(海外サーバー):
管理パネル → Staging → Create Staging Site
【プラグインでステージングを作成】
WP Stagecoach / WP Staging(無料):
プラグイン → 新規追加 → "WP Staging" → インストール
→ Tools → WP Staging → Create new staging site
→ サブフォルダ(例: /staging/)にクローンが作成される
ステップ2:WP-CLIでステージングを手動構築する
# 本番サイトをステージング用にクローン
# 前提: ステージング用ドキュメントルートが /var/www/staging/ にある
# 1. 本番ファイルをコピー
rsync -avz --exclude='wp-content/cache/' \
/var/www/html/ \
/var/www/staging/
# 2. 本番DBをエクスポート
cd /var/www/html
wp db export /tmp/production.sql
# 3. ステージング用DBを作成してインポート
mysql -u root -p -e "CREATE DATABASE wordpress_staging;"
mysql -u root -p wordpress_staging < /tmp/production.sql
# 4. ステージング用のwp-config.phpを設定
cp /var/www/staging/wp-config.php /var/www/staging/wp-config.php.bak
# 5. WP-CLIでURLを置換
cd /var/www/staging
wp config set DB_NAME 'wordpress_staging'
wp config set DB_USER 'staging_user'
wp config set DB_PASSWORD 'staging_password'
# 6. URLを本番からステージングに置換
wp search-replace 'https://example.com' 'https://staging.example.com' --all-tables
# 7. ステージング環境であることを示す設定
wp config set WP_ENVIRONMENT_TYPE 'staging'
ステップ3:wp-config.phpで環境を分離する
// wp-config.php: 環境別設定の分離
// 環境タイプを設定(WordPress 5.5以降)
define( 'WP_ENVIRONMENT_TYPE', 'staging' ); // 'production' | 'staging' | 'development'
// 環境別の設定を切り替え
switch ( wp_get_environment_type() ) {
case 'development':
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
define( 'SAVEQUERIES', true );
break;
case 'staging':
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); // エラーを画面に出さない
// ステージングで検索エンジンをブロック
// (管理画面→設定→表示設定→検索エンジンをブロック にもチェック)
break;
case 'production':
default:
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );
break;
}
// ステージングで検索エンジンへのインデックスを禁止
add_action( 'wp_head', function() {
if ( 'staging' === wp_get_environment_type() ) {
echo '<meta name="robots" content="noindex, nofollow">' . "\n";
}
} );
// ステージングで管理バーに環境表示
add_action( 'admin_bar_menu', function( $wp_admin_bar ) {
$env = wp_get_environment_type();
if ( 'production' !== $env ) {
$wp_admin_bar->add_node( [
'id' => 'environment-indicator',
'title' => strtoupper( $env ) . ' 環境',
'meta' => [ 'class' => 'environment-' . $env ],
] );
}
}, 999 );
ステップ4:ステージングから本番への反映手順
# ステージングの変更を本番に反映する安全な手順
# 1. 本番のバックアップ(必須)
cd /var/www/html
wp db export backups/pre-deploy-$(date +%Y%m%d).sql
tar -czf backups/files-pre-deploy-$(date +%Y%m%d).tar.gz wp-content/
# 2. テーマ・プラグインファイルのみ同期
# (DBは基本的に同期しない — コンテンツが上書きされる)
rsync -avz --delete \
--exclude='wp-config.php' \
--exclude='wp-content/uploads/' \
--exclude='wp-content/cache/' \
/var/www/staging/wp-content/themes/ \
/var/www/html/wp-content/themes/
rsync -avz --delete \
--exclude='wp-config.php' \
/var/www/staging/wp-content/plugins/ \
/var/www/html/wp-content/plugins/
# 3. プラグインのアップデートを本番に適用
cd /var/www/html
wp plugin update --all
wp theme update --all
# 4. キャッシュをクリア
wp cache flush
wp rewrite flush
ステップ5:ローカル開発環境を使う(開発者向け)
# wp-env(@wordpress/env)でローカル環境を構築
npm install -g @wordpress/env
# プロジェクトディレクトリで起動
wp-env start
# → http://localhost:8888 でWordPressが起動
# → http://localhost:8889 でテスト環境
# .wp-env.json でカスタマイズ
{
"core": null,
"plugins": [ "." ],
"themes": [ "./my-theme" ],
"port": 8888,
"phpVersion": "8.1",
"config": {
"WP_DEBUG": true,
"WP_ENVIRONMENT_TYPE": "development"
}
}
# Local(localwp.com)でGUI環境を構築
# 1. localwp.comからLocalをダウンロード・インストール
# 2. 「+」ボタンで新しいサイトを作成
# 3. PHP・MySQL・Nginxのバージョンを選択
# 4. WordPressの管理者情報を入力して完了
# → ワンクリックでライブプレビュー共有も可能(Ngrok連携)
注意事項
- ステージング環境では必ず
noindexメタタグまたはrobots.txtで検索エンジンのクロールをブロックしてください。インデックスされると本番と重複コンテンツになります。 - ステージングから本番へDBを丸ごと同期するのは危険です。本番でのユーザーの投稿・注文・コメントが消えます。ファイル(テーマ・プラグイン)のみを同期し、DBの変更が必要な場合はマイグレーションスクリプトで対応してください。
- ステージング環境のURLが外部に漏れないよう、Basic認証(
.htpasswd)でアクセスを制限してください。
まとめ
ステージング環境は「ホスティングのステージング機能またはWP Stagingプラグインで構築→wp-config.phpでWP_ENVIRONMENT_TYPEを設定→noindexで検索エンジンをブロック→テスト後はファイルのみ本番に同期→本番反映前にバックアップ必須」の流れで運用します。関連記事:WordPressのデータベースを最適化する方法、WordPressのマルチサイトネットワークを構築する方法。