Skip to content

本番環境デプロイ(slotkouryaku.com)

概要

開発環境(core_src)からビルドした成果物(core_YYYYMMDD_HHMMSS)を、本番環境(slotkouryaku.com)へデプロイする手順です。ステージング環境デプロイと同じ 3 ステップ構成(build → deploy → activate)です。

このページは 本番作業時の入口 です。通常の本番反映ではこのページを正本として扱い、接続・同期・障害対応・過去の移行記録は下表から目的別に参照します。

本番作業の入口

目的参照先位置づけ
本番へコードを反映するこのページ本番デプロイの正本
ステージングで先に確認するステージング環境デプロイ本番と同じ build → deploy → activate 構成の検証先
本番サーバーへ SSH 接続する本番環境への接続方法config/local.env と ConoHa WING の接続情報確認
本番で WP-CLI を使うWP-CLI 接続手順 / WP-CLI 導入手順管理コマンド・シード・確認用
本番 DB をローカルへ同期するDB 同期安全ガイド / DB 同期ローカル上書きを伴うため安全ガイドを先に確認
本番ファイルをローカルへ同期本番→ローカル ファイル同期ガイドテーマ・プラグイン・uploads の rsync 手順
障害予防・初動対応を確認するサイト停止防止ガイド本番反映前後の確認観点と障害時の調査入口
過去の本番移行記録を見る本番移行手順マニュアル参考保存。現役手順ではなく、緊急リカバリや経緯確認でのみ参照

作業前の確認順

前提条件

  • ローカル環境でのテスト・品質チェック完了
  • デプロイ設定ファイルの準備(config/local.env

確認順

本番作業前は、次の順で確認します。

  1. 反映対象がステージングで確認済みかを ステージング環境デプロイ で確認する。
  2. config/local.env と SSH 接続情報を 本番環境への接続方法 に沿って確認する。
  3. DB やファイルをローカルへ同期する作業が必要な場合は、デプロイ手順ではなく DB 同期安全ガイドファイル同期ガイド を先に確認する。
  4. 障害時の切り戻し・確認観点を サイト停止防止ガイド とこのページの ロールバック で確認する。

設定手順

1. config/local.env の作成

bash
cp config/local.env.example config/local.env
nano config/local.env

2. 設定する項目

変数説明
DEPLOY_HOST本番サーバーのホスト名または IP
DEPLOY_PORTSSH ポート(省略時は 22)
DEPLOY_USERSSH ログインユーザー名
DEPLOY_SSH_KEY秘密鍵のパス(例: ~/.ssh/your-private-key.pem
DEPLOY_REMOTE_PATH本番のテーマ直下のフルパス(core_* を置くディレクトリ)

DEPLOY_REMOTE_PATH の例:

/home/conoha/public_html/slotkouryaku.com/wp-content/themes/cocoon-child-master/myCustom

3. パーミッション

bash
chmod 600 config/local.env

デプロイ手順

一括実行(推奨):

bash
./bin/deploy-all.sh

./bin/build.sh(deploy-all 内で実行)は npm run build により Chart.js 等のフロントバンドル(hall-samai-graph.js / period-kishu-samai-ranking.js 等、.gitignore 対象)を生成してから core_src_build/core_* にコピーします。バンドル未生成のまま PHP のみデプロイすると、グラフ系ショートコードは error_log のみで画面に JS が載りません。管理画面ビルドには gzip/Brotli 事前圧縮も含まれます。配信条件は 事前圧縮静的アセット を参照してください。

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

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

    bash
    ./bin/build.sh
  2. 本番へアップロード

    bash
    ./bin/deploy.sh

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

    bash
    ./bin/deploy.sh 20250120_143022

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

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

    bash
    ./bin/activate.sh 20250120_143022

    このスクリプトは SSH で本番サーバーに接続し、connector.phpVERSION 定数を指定したタイムスタンプに更新したうえで、PHP-DI コンパイル済みコンテナキャッシュを削除します。次回リクエスト時にキャッシュが新しい core_* から再生成されます。

SSH が使えない場合の FTPS zip デプロイ

SSH 接続が利用できない場合の暫定ルートとして、FTPS で zip と一時デプロイレシーバーをアップロードし、HTTPS 経由でサーバー側展開・connector.phpVERSION 切り替え・PHP-DI キャッシュ削除を実行できます。

config/local.env に次を追加します。

bash
DEPLOY_FTPS_URL=ftp://your-ftp-host/public_html/slotkouryaku.com/wp-content/themes/cocoon-child-master/myCustom
DEPLOY_FTPS_USER=your-ftp-username
DEPLOY_FTPS_PASS=your-ftp-password
DEPLOY_FTPS_PUBLIC_URL=https://www.slotkouryaku.com/wp-content/themes/cocoon-child-master/myCustom

一括実行:

bash
./bin/deploy-all-ftps-zip.sh

ビルド済みバージョンを指定して実行:

bash
./bin/deploy-ftps-zip.sh 20260713_120000

この方式では core_YYYYMMDD_HHMMSS.zip と、ランダム名・強トークン付きの一時 PHP レシーバーを FTPS で myCustom/ にアップロードします。zip には core_YYYYMMDD_HHMMSS に加えて、存在する場合は myTemplate/scripts/.DS_Store / *.bak 除外)も含めます。レシーバーは POST リクエストでトークン検証後、zip をステージングディレクトリへ展開し、vendor/autoload.php の存在を確認してから core_YYYYMMDD_HHMMSS を配置します。myTemplate/ は上書きマージ、scripts/ は削除同期されます。connector.php は最後に更新され、成功時に zip とレシーバー自身を削除します。

注意:

  • SFTP ではなく FTPS を使用します。SFTP は SSH 接続に依存します。
  • 成功時に前回失敗で残った .deploy-stage-* / deploy-receiver-*.php / core_*.zip を掃除します。
  • 成功時に古い core_* を tiered 方針(最新5件常時保持・最大10件・2日超は6件目以降削除)で削除します。
  • scripts/ はリモート側を一度削除してから配置します。リモートで手動追加した一時ファイルも削除されます。
  • 一時レシーバーは Web 公開領域に置かれるため、実行後に自動削除されます。失敗時は myCustom/deploy-receiver-*.php が残っていないか確認し、残っていれば削除してください。
  • 通常の SSH デプロイが復旧したら、./bin/deploy-all.sh を優先してください。

キャッシュのみ削除したい場合

VERSION の切り替えは不要でキャッシュだけ削除したい場合(DI 定義の変更を反映したい、不具合調査でキャッシュを外したいなど)は、clear-cache.sh を使用します。

bash
./bin/clear-cache.sh

ロールバック

問題が発生した場合は、activate.sh で旧バージョンを指定して切り替えます。

bash
./bin/activate.sh 20250115_091500  # 前回のバージョン

旧バージョンのディレクトリ(core_20250115_091500)がリモートに残っている必要があります。最新 2〜3 バージョンは削除せずに保持しておくことを推奨します。

関連ドキュメント