Appearance
ステージング環境デプロイ(staging.slotkouryaku.com)
概要
開発環境(core_src)からビルドした成果物(core_YYYYMMDD_HHMMSS)を、ステージング環境(staging.slotkouryaku.com)へデプロイする手順です。本番デプロイと同じビルド成果物を、別ターゲット(ステージング用のテーマパス)に SCP でアップロードします。
前提条件
- ステージング用 WordPress がステージング用 DB で稼働していること(ConoHa WING の「+WordPress」で staging.slotkouryaku.com を追加した場合、ステージング用 DB とドキュメントルートは自動作成されます)
- ステージングのドキュメントルートに、本番と同様にテーマ
cocoon-child-master/myCustomが存在するパスがあること - デプロイ設定ファイルの準備(
config/staging.env) ./bin/deploy-staging.shや./bin/activate-staging.shを 個別実行する場合 は、事前にローカルで./bin/build.shを実行し、ビルド済みのcore_YYYYMMDD_HHMMSSが存在していること(./bin/deploy-all-staging.shによる一括実行時はビルド処理も含まれるためこの前提は不要)
設定手順
1. config/staging.env の作成
bash
cp config/staging.env.example config/staging.env
nano config/staging.env2. 設定する項目
| 変数 | 説明 |
|---|---|
| DEPLOY_HOST | ステージングサーバーのホスト名または IP(本番と同一サーバーの場合は本番と同じ値) |
| DEPLOY_PORT | SSH ポート(省略時は 22) |
| DEPLOY_USER | SSH ログインユーザー名 |
| DEPLOY_SSH_KEY | 秘密鍵のパス(例: ~/.ssh/your-private-key.pem) |
| DEPLOY_REMOTE_PATH | ステージングのテーマ直下のフルパス(core_* を置くディレクトリ) |
本番と同一サーバー(同一 ConoHa WING)の場合: DEPLOY_HOST / DEPLOY_USER / DEPLOY_SSH_KEY は本番の config/local.env と同じでよく、DEPLOY_REMOTE_PATH のみステージング用に変更します。
DEPLOY_REMOTE_PATH の例(ConoHa WING で staging.slotkouryaku.com に WordPress を追加した場合):
/home/conoha/public_html/staging.slotkouryaku.com/wp-content/themes/cocoon-child-master/myCustom3. パーミッション
bash
chmod 600 config/staging.envデプロイ手順
一括実行(推奨):
bash
./bin/deploy-all-staging.sh個別実行(部分再実行や確認しながら進めたい場合):
ビルド(未実行の場合)
bash./bin/build.shステージングへアップロード
bash./bin/deploy-staging.shまたはバージョン(タイムスタンプ)を指定する場合:
bash./bin/deploy-staging.sh 20250120_143022バージョンを省略した場合: 実行ログに表示されるバージョン名か、以下のコマンドで
_buildディレクトリ一覧から最新を確認して、次のactivate-staging.shに渡してください。bashls -1 _build/core_* | sort | tail -n 1 | sed 's|.*/core_||'VERSION 切り替え&キャッシュ削除
bash./bin/activate-staging.sh 20250120_143022このスクリプトは SSH でステージングサーバーに接続し、
connector.phpのVERSION定数を指定したタイムスタンプに更新したうえで、PHP-DI コンパイル済みコンテナキャッシュを削除します。次回リクエスト時にキャッシュが新しいcore_*から再生成されます。注意:
deploy-staging.sh実行後、WordPress 管理画面でconnector.phpを編集しようとすると、古いキャッシュが原因でエラーになる場合があります。その場合もactivate-staging.shで切り替えてください。
キャッシュのみ削除したい場合
VERSION の切り替えは不要でキャッシュだけ削除したい場合(DI 定義の変更を反映したい、不具合調査でキャッシュを外したいなど)は、clear-staging-cache.sh を使用します。
bash
./bin/clear-staging-cache.sh古いビルドを削除したい場合
ステージングサーバーの DEPLOY_REMOTE_PATH 配下に蓄積した core_YYYYMMDD_HHMMSS を削除できます。
bash
# 一覧表示
./bin/clean-remote-builds-staging.sh --list
# 削除対象確認のみ
./bin/clean-remote-builds-staging.sh --keep 3 --dry-run
# 最新3件を残して削除
./bin/clean-remote-builds-staging.sh --keep 3指定バージョンのみ削除する場合:
bash
./bin/clean-remote-builds-staging.sh --version 20250120_143022注意: 現在
connector.phpが参照しているアクティブバージョンを削除すると、サイトが動作しなくなる可能性があります。削除前に必ず利用中バージョンを確認してください。
管理画面から古いビルドを削除したい場合
ステージング環境の WordPress 管理画面で ツール > ビルド管理 を開くと、サーバー上の core_* ディレクトリ一覧を確認し、不要なバージョンを削除できます。
- 稼働中のバージョンは削除できません
- チェックボックスで選択したビルドを削除できます(「最新 N 件を残す」一括削除には未対応)
- 「最新 N 件を残す」一括削除を行いたい場合は CLI の
./bin/clean-remote-builds-staging.shを使用してください
トラブルシューティング: ランキング・末尾データが表示されない場合
日次結果ページで「ランキング」「末尾データ」が「エラー: ランキングの取得に失敗しました。」等と表示される場合、REST API が HTML を返している可能性があります。以下を確認してください。
| 確認項目 | 手順 |
|---|---|
| REST URL | 該当ページの HTML ソースで dailyArticleAsync.restUrl を確認。同一オリジンの https://staging.slotkouryaku.com/wp-json/daily-article/v1/ に近い形か。 |
| エンドポイント直接アクセス | ブラウザで {restUrl}async-ranking?hall=アイランド秋葉原&date=YYYY-MM-DD を開く。JSON が返るか、HTML(404 等)が返るか。 |
| WP_HOME / WP_SITEURL | ステージングの wp-config.php または DB の siteurl / home が正しいか。誤っていると rest_url() が別ドメインになり HTML が返る原因になる。 |
| パーマリンク | WordPress 管理画面「設定 → パーマリンク」で「変更を保存」を実行し、REST 用リライトを再生成する。 |
| PHP-DI キャッシュ | wp-content/cache/php-di/CompiledContainer.php を削除して再アクセス。DI 定義変更後にキャッシュが残っているとルートが登録されない場合がある。 |
関連ドキュメント
- 本番環境デプロイ: 本番へのデプロイ手順
- PHPバージョンの更新: ConoHa WING での PHP バージョン・php.ini の設定(ステージングはドメイン個別設定に注意)
- 本番環境への接続方法: ConoHa WING の接続情報の取得方法(ステージングも同一サーバーなら同じ情報を利用)