PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

リモートサーバへの同期

アドオン・プラグイン

※ この機能はプロフェッショナル版以上のライセンスをご購入の場合のみご利用可能です

リモートサーバーへの同期に際しては、公開環境への同期の際にコピーしたファイルと、コピー処理のログを送ります。ファイルは 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 テスト用に転送される転送先サーバーのファイルの種類に対応する値を指定してください。
  • 1(バイナリファイル)
  • 0 (アスキーファイル)

※ 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

リモートサーバーへの同期の実行

必要な設定が完了したら管理画面にサインインし、[同期]-[公開環境に同期] から同期を実行し、結果を確認してください。

ステージ環境のファイルと公開環境のファイルに差分がない場合、同期対象がないと判断されます。その場合はテスト用の記事を作成するなどし、ステージ環境に同期を行ってから再度公開環境への同期を行ってください。

一覧へ

お問い合わせ

お問い合わせフォームがご利用できない場合は、以下のメールアドレスからも受け付けております。
contact@alfasado.jp

製品資料ダウンロード

パンフレットデータ、提案用資料などがダウンロードできます。