2016年12月09日
ステージングサーバー連携機能 初期設定例
PowerCMS の ステージングサーバー連携機能 はサポートにてお客様から頻繁にお問い合わせ頂く機能の一つです。 この記事ではよくお問い合わせを頂く環境の例をとりあげ、その初期設定方法について解説します。
共通の準備
製品パッケージに同梱のオプションプラグイン Abs2Rel プラグインをインストールします。
例1. 公開環境とステージ環境とが同一サーバー上に存在し、ディレクトリをきって環境が区別されているケース
環境の詳細
同一サーバー上に公開環境とステージ環境が存在し、各々はディレクトリをきって環境を区別しています。 また、ドメインも各々の環境にサブドメインをふっています。
例として次表の構成を想定します。
ウェブサイトパス | ドメイン | |
---|---|---|
CMS環境 | /var/www/cms | cms.example.com |
ステージ環境 | /var/www/stage | stage.example.com |
公開環境 | /var/www/html | www.example.com |
設定
- MTの管理画面にて、ステージングサーバー連携機能を使用するウェブサイトにアクセスします。
- プラグイン設定に遷移して 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.example.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ファイルとファイルリストの転送先ディレクトリのフルパスを指定。リモートサーバー上のパスであることに注意。 |
リモートサーバー上で稼働させる 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環境のウェブサイトパスを指定します。
Movable Type + ステージングサーバー連携機能
Movable Type に ステージングサーバー連携機能を組み込めるプラグイン PowerSync の初期設定も本記事と同じ方法、手順で初期設定が可能です。 PowerCMS の機能のなかで ステージングサーバー連携機能だけ使いたいという場合に是非ご利用をご検討ください。
- カテゴリー
- サポート
加藤朗
2017年9月 4日 12:04はじめまして。
PowerSyncの設定に関しまして、1点質問がございます。
デフォルトでは、$backup_dirに解凍前のZIPファイルを保存する設定になっておりますが、
サーバー内にZIPファイルを残していくと、ファイルの容量が大きくなってサーバーに負荷がかかるため、解凍前のZIPファイルのバックアップを取らない設定の仕方はございますでしょうか?
アルファサード 株式会社
2018年1月18日 11:39加藤朗様
アルファサード株式会社です。
お世話になっております。
PowerCMSブログにコメントいただき、誠にありがとうございます。
do-synchronizeスクリプトのデフォルト設定では、ソース冒頭の$backup_dirには空文字が入っており、バックアップを作成しないようになっています。
お客様自身で、do-synchronizeスクリプト内の$backup_dirにディレクトリを設定していただくことでバックアップファイルが作成されます。
なので、バックアップを作成しないのであれば$backup_dirに空文字を指定してください。
※nullにするとエラーが発生するので空文字で設定してください。
■do-synchronizeバックアップ先を指定しない設定例(デフォルト設定)
my $backup_dir = ''; # Path to backup directry of ZIP archive and log.
また、PowerSyncUserGuide.pdfの[P11~リモートサーバ]にbackup_dirについての掲載があるので、こちらについてもご覧ください。
PowerSyncUserGuide.pdfはサポートサイトのPowerSyncダウンロードページからもご覧いただけます。
何卒、よろしくお願い申し上げます。