PowerCMS ブログ

2016年12月09日

ステージングサーバー連携機能 初期設定例

PowerCMS の ステージングサーバー連携機能 はサポートにてお客様から頻繁にお問い合わせ頂く機能の一つです。 この記事ではよくお問い合わせを頂く環境の例をとりあげ、その初期設定方法について解説します。

共通の準備

製品パッケージに同梱のオプションプラグイン Abs2Rel プラグインをインストールします。

例1. 公開環境とステージ環境とが同一サーバー上に存在し、ディレクトリをきって環境が区別されているケース

環境の詳細

同一サーバー上に公開環境とステージ環境が存在し、各々はディレクトリをきって環境を区別しています。 また、ドメインも各々の環境にサブドメインをふっています。

例として次表の構成を想定します。

ウェブサイトパス ドメイン
CMS環境 /var/www/cms/ cms.example.com
ステージ環境 /var/www/stage/ stage.exapmle.com
公開環境 /var/www/html/ www.example.com

設定

  • MTの管理画面にて、ステージングサーバー連携機能を使用するウェブサイトにアクセスします。
  • プラグイン設定に遷移して Copy2Public プラグインの設定画面を開き、ステージ環境のパスと公開環境のパスにそれぞれの環境のウェブサイトパスを設定します。Copy2Publicの設定画面(同一サーバ上にステージ環境と本番環境が存在するケース)
  • mt-config.cgi に環境変数 AllowCopy2PublicStagingRoot と AllowCopy2PublicPublishRoot を指定します。
AllowCopy2PublicStagingRoot AllowCopy2PublicPublishRoot
指定する値 /var/www/stage/ /var/www/html/

例2. 公開環境とステージ/CMS環境とが別サーバー上に存在するケース

環境の詳細

公開環境がステージ/CMS環境とは異なるサーバー(リモートサーバー)に存在しています。 この場合も、CMSサーバー上に仮の公開環境を用意する必要があります。

例として次表の構成を想定します。

ウェブサイトパス ドメイン
CMS環境 /var/www/cms/ cms.example.com
ステージ環境 /var/www/stage/ stage.exapmle.com
仮の公開環境 /var/www/html/ release.example.com

また、リモートサーバー上に存在する公開環境は次表の構成を想定します。

ウェブサイトパス ドメイン
公開環境 /home/htdocs/ www.example.com

Copy2Public は転送/展開対象のコンテンツの差分をzipファイルとファイルリストにまとめて、リモートサーバーにFTP、またはSFTPにより転送します。 リモートサーバーでは転送されたzipファイルを解凍し、ファイルリストを使用してドキュメントルート配下にコンテンツを展開するPerlスクリプトを設置します。

設定

  • 例1の設定を行います。
  • プラグイン設定に遷移して Copy2Public プラグインの設定画面を開き、FTP/SFTP転送設定を設定します。各項目の設置例は次表の通りです。
項目 補足
転送先サーバーの公開環境のパス /home/htdocs/ 公開環境(リモートサーバー)のドキュメントルートをフルパスで指定
サーバー名 ftp.example.com 公開環境のFTPサーバ名を指定
ユーザー名 username 公開環境のFTPアカウント名を指定
パスワード password 公開環境のFTPパスワードを指定
アップロードディレクトリのパス /tmp/updir/ zipファイルとファイルリストの転送先ディレクトリのフルパスを指定。リモートサーバー上のパスであることに注意。

Copy2PublicのFTP/SFTP設定

リモートサーバー上で稼働させる Perl スクリプト do-synchronize の設定

製品パッケージに同梱の Perl スクリプト do-synchronize を公開環境(リモートサーバー)上で動作させます。 通常、 do-synchronize はサーバーの cronジョブ やタスクスケジューラーに登録して定期的に実行させます。

do-synchronize ではスクリプト冒頭にある次の3つの設定を環境に合わせた値に設定します。

変数名 補足
$upld_dir /tmp/updir/ FTP/SFTP転送設定にて「アップロードディレクトリのパス」に設定した値と同じパスを記述する
$backup_dir /tmp/backup/ CMSサーバーからFTP/SFTPで受け取ったzipファイルとファイルリストのバックアップを置くディレクトリのパス
$sync_log /tmp/log/sync.log do-synchronize 自身のログファイルのパス

なお、 do-synchronize を稼働させるためには、リモートサーバーにて perl コマンドが使えること、及び Perl モジュールの Archive::Zip がインストールされている必要があります。

例3. ステージ環境への同期をスキップするケース

CMS環境からステージ環境、ステージ環境から公開環境に同期という2回の同期ではなく、CMS環境から公開環境に同期という1回の同期で運用する環境です。

例として次表の構成を想定します。例を簡単にするため、各環境は同一サーバー上にあるものとします。

ウェブサイトパス ドメイン
CMS環境 兼 ステージ環境 /var/www/cms/ cms.example.com
公開環境 /var/www/html/ www.example.com

設定

  • 例1の設定にて、 Copy2Public プラグイン設定のステージ環境のパスにCMS環境のウェブサイトパスを指定します。

Copy2Publicの設定画面(ステージ環境をスキップする設定)

Movable Type + ステージングサーバー連携機能

Movable Type に ステージングサーバー連携機能を組み込めるプラグイン PowerSync の初期設定も本記事と同じ方法、手順で初期設定が可能です。 PowerCMS の機能のなかで ステージングサーバー連携機能だけ使いたいという場合に是非ご利用をご検討ください。

カテゴリー
サポート

ページの先頭へ