※ この機能はプロフェッショナル版以上のライセンスをご購入の場合のみご利用可能です
リモートサーバーへの同期に際しては、公開環境への同期の際にコピーしたファイルと、コピー処理のログを送ります。ファイルは Zip アーカイブして送られます。ログの内容はリモートサーバー内のパスに置き換えられており、ファイルの配置レシピとして利用されます。
公開環境への同期の際に削除されたファイルについてもログに含まれています。
ログが転送されるのは Zip アーカイブが転送された後ですので、リモートサーバへの転送が途中でエラーとなった場合などに意図しない状態でサイトが公開されることを防ぐことができます。
リモートサーバーでの設定
リモートサーバーでは、展開・配置スクリプトの実行によって、リモートサーバー内に展開・配置することができます。定期的に実行できるよう、リモートサーバーで cron やタスクスケジューラに設定してください。展開・配置スクリプトは、PowerCMS パッケージ内の options/tools/do-synchronize-time-reserved
です。
- crontab への登録の例 (20分おきのタスク実行)
0,20,40 * * * * /usr/bin/perl /var/www/cgi-bin/do-synchronize-time-reserved
※ PowerCMS 6.2 から do-synchronize スクリプトは do-synchronize-time-reserved に変更しました。
※ 本ドキュメントの内容は最新版がベースになっています。旧バージョンをご利用の場合、do-synchronize-time-reserved と記載所部分は do-synchronize へ読み替えてください。
apache や nginx など、ウェブサーバの実行ユーザが行うように設定してください。
展開・配置スクリプト内の設定
展開・配置スクリプト設置の際には、テキストエディタ等でファイルを開き、以下の項目を設定してください。
設定項目 | 解説 | 設定例 |
---|---|---|
1行目 | サーバーのPerlのパスにあわせて適宜変更してください。 | #!/usr/bin/perl -w |
5行目: $upld_dir | CMS サーバーから転送される Zip アーカイブとログファイルを転送する、リモートサーバー内のディレクトリのパスを指定します。これは、プラグイン設定「アップロードディレクトリのパス」に指定したパスと同じです。 | /var/www/upload |
6行目: $backup_dir | 処理対象の Zip アーカイブとログファイルをバックアップしたい場合、バックアップ先のディレクトリのパスを指定します。下記のように空を指定するとバックアップを行いません。
my $backup_dir = ''; |
/var/www/backup |
7行目: $sync_log | 展開・配置スクリプトの実行結果をファイルに保存したい場合、ログファイルのパスを指定します。下記のように空を指定するとログを保存しません。
my $sync_log = ''; |
/var/www/log/sync.log |
9行目: $delete_tree | 展開・配置スクリプトにディレクトリの削除を許可する場合は 1 を指定します。 | 1 |
※ Perl 文法にのっとって記述する必要があります。値は引用符で囲み、行の最後に ; を入力してください
※ PowerCMS のバージョンによって設定項目の行は前後します
プラグイン設定
続いて、管理画面から同期に関する設定を行います。各ワークスペース/スペースの [設定]-[プラグイン] 内 [Copy2Public] の設定で、下記の項目を追加で設定します。
転送 | 公開環境への同期時にリモートサーバへの転送を行う場合にチェックを入れてください。 | |
---|---|---|
転送先サーバーの公開環境のパス | リモートサーバーに転送した Zip アーカイブの展開先(サーバーの公開パス)をフルパスで記述します。 | /var/www/html |
サーバー設定 | ワークスペース/スペースごとに個別の設定を行わずシステム全体で同じアカウント、サーバーを利用する場合はチェックを入れてください。共通アカウント設定はシステムプラグイン設定で指定します。 | |
サーバー名 | リモートサーバーのホストまたは IP アドレスを記述します。合わせて、Unix OS または Windows OS を選択してください。 | ftp.example.cpm |
ユーザー名 | リモートサーバーヘのログインユーザー名を指定します。 | ftpuser |
パスワード | リモートサーバーヘのログインパスワードを指定します。入力した内容はマスク表示されるため注意してください。 | ******** |
アップロードディレクトリのパス | リモートサーバー内の、ファイルを転送するディレクトリのパスをフルパスで指定します。ここに設定したパスを展開・配置スクリプトの $upld_dir にも設定します。 |
/var/www/upload |
ホームディレクトリからのパス | リモートサーバーにログインするユーザーにチェンジルートが設定されている場合に指定します。ユーザーのホームディレクトリを起点とした、「アップロードディレクトリのパス」に対応するパスを指定してください。指定したパスに移動して Zip アーカイブとログの転送処理を行います。 | /upload |
パッシブ・モードで転送する | FTP転送でパッシブ・モード転送を行う場合にチェックします。 |
続いて、転送プロトコルに応じた設定を行います。
FTP / FTPS でのファイル転送を行う場合
環境変数の設定
FTPS での転送を行う場合、以下の環境変数を設定してください。FTP での転送を行う場合は設定は不要です。
設定項目 | 解説 | 設定例 |
---|---|---|
Copy2PublicTransferProtocol | ftps を指定することで FTPS による転送を行うことができます。 | ftps |
テストスクリプトでの実行チェック
$MT_DIR/tools/ftp-test.pl
を実行すると、テストファイルを転送して疎通確認を行うことができます。実行前にテキストエディタ等で以下の項目を設定してください。
設定項目 | 解説 | 設定例 |
---|---|---|
13 行目: $HOSTNAME | 転送先のサーバのホスト名もしくは IP アドレスを指定します。 | 192.0.2.123 |
14 行目: $USERNAME | 転送先のサーバのログインに必要なユーザ名を指定します。 | admin |
15 行目: $PASSWORD | 転送先のサーバのログインに必要なパスワードを指定します。 | ******** |
16 行目: $LOCAL_FILE | テスト用に転送する CMS サーバーのファイルのパスを指定します。 | /path/to/file.txt |
17 行目: $REMOTE_FILE | テスト用に転送される転送先サーバーのファイルのパスを指定します。 | /remote_path/to/file.txt |
18 行目: $PASSIVE | 転送先のサーバの接続にパッシブ・モードが必要な場合に 1 を指定してください。 | 1 |
19 行目: $BINARY | テスト用に転送される転送先サーバーのファイルの種類に対応する値を指定してください。 |
|
※ Perl 文法にのっとって記述する必要があります。値は引用符で囲み、行の最後に ; を入力してください
テストスクリプトの実行方法
スクリプトの実行は PowerCMS のアプリケーションディレクトリから行ってください。
$ cd $MT_DIR $ perl tools/ftp-test.pl
SFTP でのファイル転送を行う場合
ユーザー名とパスワードでの認証による SFTP 転送に対応しています。ご利用にあたっては、ドキュメント『概要』の「よりセキュアな転送を行うために」に記載の内容が満たされているかご確認ください。
環境変数の設定
SFTP 転送を行う場合、以下の環境変数を設定してください。
設定項目 | 解説 | 設定例 |
---|---|---|
Copy2PublicTransferProtocol | sftp を指定することで SFTP による転送を行うことができます。 | sftp |
テストスクリプトでの実行チェック
$MT_DIR/tools/sftp-test.pl
を実行すると、指定したファイルを転送するテストを行うことができます。実行前にテキストエディタ等で以下の項目を設定してください。
設定項目 | 解説 | 設定例 |
---|---|---|
13 行目: $HOSTNAME | 転送先のサーバのホスト名もしくは IP アドレスを指定します。 | 192.0.2.123 |
14 行目: $USERNAME | 転送先のサーバのログインに必要なユーザ名を指定します。 | admin |
15 行目: $PASSWORD | 転送先のサーバのログインに必要なパスワードを指定します。 | ******** |
16 行目: $LOCAL_FILE | テスト用に転送する CMS サーバーのファイルのパスを指定します。 | /path/to/file.txt |
17 行目: $REMOTE_FILE | テスト用に転送される転送先サーバーのファイルのパスを指定します。 | /remote_path/to/file.txt |
※ Perl 文法にのっとって記述する必要があります。値は引用符で囲み、行の最後に ; を入力してください
テストスクリプトの実行方法
スクリプトの実行は PowerCMS のアプリケーションディレクトリから行ってください。
$ cd $MT_DIR $ perl tools/sftp-test.pl
リモートサーバーへの同期の実行
必要な設定が完了したら管理画面にサインインし、[同期]-[公開環境に同期] から同期を実行し、結果を確認してください。
ステージ環境のファイルと公開環境のファイルに差分がない場合、同期対象がないと判断されます。その場合はテスト用の記事を作成するなどし、ステージ環境に同期を行ってから再度公開環境への同期を行ってください。
- 一覧へ