Skip to content

ステージング環境デプロイ(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.env

2. 設定する項目

変数説明
DEPLOY_HOSTステージングサーバーのホスト名または IP(本番と同一サーバーの場合は本番と同じ値)
DEPLOY_PORTSSH ポート(省略時は 22)
DEPLOY_USERSSH ログインユーザー名
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/myCustom

3. パーミッション

bash
chmod 600 config/staging.env

デプロイ手順

一括実行(推奨):

bash
./bin/deploy-all-staging.sh

個別実行(部分再実行や確認しながら進めたい場合):

  1. ビルド(未実行の場合)

    bash
    ./bin/build.sh
  2. ステージングへアップロード

    bash
    ./bin/deploy-staging.sh

    またはバージョン(タイムスタンプ)を指定する場合:

    bash
    ./bin/deploy-staging.sh 20250120_143022

    バージョンを省略した場合: 実行ログに表示されるバージョン名か、以下のコマンドで _build ディレクトリ一覧から最新を確認して、次の activate-staging.sh に渡してください。

    bash
    ls -1 _build/core_* | sort | tail -n 1 | sed 's|.*/core_||'
  3. VERSION 切り替え&キャッシュ削除

    bash
    ./bin/activate-staging.sh 20250120_143022

    このスクリプトは SSH でステージングサーバーに接続し、connector.phpVERSION 定数を指定したタイムスタンプに更新したうえで、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 定義変更後にキャッシュが残っているとルートが登録されない場合がある。

関連ドキュメント