サーバー配信機能

目次

はじめに

サーバー配信機能を利用するとMovable Typeがインストールされたサーバーと外部サーバーと同期を取ることができます。公開するサーバーにMovable Typeをインストールしなくてもコンテンツを公開することができるため、セキュリティに配慮したサーバー構成を取ることができます。配信するプロトコルはFTP(s)とrsyncが利用できます。また、SmartSync 2.511からAmazon S3への配信も可能となりました。
※Movable Type クラウド版からサーバー配信を行う場合はFTPSのみとなります。

※既にSmartSyncPackをご購入のお客様
SmartSync 2.511のアップデートよりサーバー配信処理の内容が大幅にバージョンアップされております。十分に検証の上本番環境にご適用ください。

主な機能

  • FTP(s)とrsyncとAmazon S3による外部サーバへのサーバー配信(コンテンツ同期)を行うことができます
    ※Movable Type クラウド版へサーバー配信を行う場合はFTPSのみとなります
  • サイト単位にサーバー配信の設定ができます
  • 複数の公開サーバーにサーバー配信することができます
  • サーバー配信の即時実行および日時を指定したサーバー配信の予約実行ができます
  • 1つのサーバー配信設定に複数のサーバー配信のジョブ登録を行うことができます
  • 特定のディレクトリやファイルをサーバー配信の対象外とする除外設定ができます
  • 既に登録されているサーバー配信設定を複製して、新しい設定を追加することができます
  • サーバー配信の定期実行を行うことができます。
  • サーバー配信先がCDNを利用している場合、サーバー配信と同時にCDNのキャッシュクリアを行います
  • サーバー配信ロールを設定することができます
  • サーバー配信のジョブ登録・配信完了時にメールで通知することができます
  • サーバー配信設定を利用して、ファイルの個別配信を行うことができます。
  • サーバー配信の状況ダッシュボードウィジェットにて確認することができます。
  • サーバー配信の結果をサーバー配信履歴より確認することができます。

サーバー配信の設定

サイト・子サイト単位でサーバー配信を実行することができます。
※フォルダ単位・ファイル単位での配信については「サーバー配信(個別配信)の設定」を参照ください。
※SmartSync 2.511以降、相対パスへの自動書き換えを廃止しています。パスについては同梱しているRelativeURLFilterで相対パスへ修正する必要があります。

新しい配信先を登録する

  1. サーバー配信を設定するサイトの管理画面を表示します
  2. サイドメニューから [サーバー配信] - [サーバー配信設定] を選択します
  3. [新しいサーバー配信設定を作成する] リンクをクリックします
    ssp_server_configuration01.png
  4. 設定名、通知設定、配信元、配信方法、配信先を設定します
  5. 設定名
    任意の設定名を入力します
    通知設定
    配信を行った結果の通知メールの送信先を指定します
    配信元
    配信元のディレクトリ
    配信対象となる配信元のディレクトリを指定します
    除外パターン
    配信対象から除外するパターンを記載します
    例:
    ignore.html
    /\/2018\/08/
    ※ただし、rsyncを使用する同期処理ではこの設定は無効になります。この場合、'rsync 追加設定' に設定をお願いします
    配信方法
    使用できる配信方法
    必要な配信方法にチェックを入れます
    テスト配信(ドライラン)
    有効にする場合はチェックを入れます
    ドライランを行うことで転送内容の確認を行うことができます。転送結果は配信履歴にて確認可能です。
    配信先
    配信先の情報を複数登録できます。配信するプロトコルはFTP(s)とrsyncとAmazon S3が利用できます
    ※Movable Type クラウド版へサーバー配信を行う場合はFTPSのみとなります
    転送方法:FTPの場合
    転送方法
    "FTP"を指定します
    配信先名
    任意の配信先名を入力します
    FTPサーバー
    配信先のサーバーのアドレスを入力します
    FTPサーバーのポート
    配信先の FTP サーバーのポート番号を入力します。通常は 21 です
    SSL
    有効にすると、FTP サーバーとの接続に SSL を利用します(FTPS で通信を行います)
    ユーザー名
    配信先のFTPサーバーのユーザー名を入力します
    パスワード
    配信先のFTPサーバーのユーザーのパスワードを入力します
    開始ディレクトリ
    配信先のサーバーで、コンテンツを配置するディレクトリを指定します
    ディレクトリは、配信先のサーバー上のパスではなく、FTP ユーザーのホームディレクトリからのパスを指定します
    転送方法:rsyncの場合
    転送方法
    "rsync"を指定します
    rsync 先のディレクトリ
    rsync 先のディレクトリを絶対パスで指定します
    例:
    testuser@192.168.0.100:/var/www/htdocs/test/
    rsync 追加設定
    特定ディレクトリ/ファイルの除外を行う場合や、秘密鍵を指定する場合など、rsyncの追加オプションを設定します
    例:
    -a --delete --exclude='mt-config.cgi' --exclude='mt-preview-*' --exclude='/ignore.*/'
    転送方法:Amazon S3の場合
    転送方法
    "S3"を指定します
    s3 Access Key
    S3 のAccess Keyを指定します
    s3 Secret Key
    S3 のSecret Keyを指定します
    s3 Bucket
    S3 のBucketを指定します
    s3 Region
    S3 のRegionを指定します
    東京の場合は ap-northeast-1 になります。
    s3 Path
    S3 のPathを絶対パスで指定します
    ※アクセスキーとシークレットキーはIAM Roleを設定されている場合には不要になります
    ※IAMのポリシーとしては以下が必要です
    ・PutObject
    ・GetObject
    ・DeleteObject
    ・ListBucket
  6. 入力した後、 [変更を保存] をクリックして設定を保存します

登録されている配信先を複製する

すでに登録されている設定を複製して、新しい設定を追加することができます。

  1. サーバー配信を設定するサイトの管理画面を表示します
  2. [サーバー配信] - [サーバー配信設定] を選択します
  3. 一覧から複製する設定名をクリックして編集画面に移動して、 [このサーバー配信設定を複製する] リンクをクリックします
    ssp_server_configuration02.png
  4. 複製された設定が編集状態で表示されるので、設定内容を適宜変更します
    ssp_server_configuration03.png
  5. 入力した後、 [変更を保存] をクリックして設定を保存します

登録されている配信先を削除する

  1. サーバー配信を設定するサイトの管理画面を表示します
  2. サイドメニューから [サーバー配信] - [サーバー配信設定] を選択します
  3. 一覧から削除する設定のチェックボックスをチェックして、 [削除] ボタンをクリックします

サーバー配信の実行

  1. サーバー配信を設定するサイトの管理画面を表示します
  2. [サーバー配信] - [サーバー配信] を選択します

サーバー配信を実行する方法は、以下の2種類があります。
※個別配信については後述の「サーバー配信(個別配信)の設定」の項目をご覧ください。

即時配信
配信先に対して、次回run-periodic-tasks起動時にサーバー配信を実行します。サーバー配信設定の「通知設定」を指定している場合、実行結果をメールで受け取ることができます。
"すべてのファイルを同期する"オプションをチェックして有効にすると、前回の差分を配信するのではなく、サイトパス配下のすべてのファイルやディレクトリを改めて配信します。
配信予約
「サーバー配信日時」で指定した日時に配信を実行します
サーバー配信設定の「通知設定」を指定している場合、実行結果をメールで受け取ることができます
※サーバー上で、run-periodic-tasks が動作するように設定されている必要があります
※毎週決まった曜日に実行するなどの定期実行について「サーバー配信定期実行スクリプトの設定」を参照ください
ssp_server_configuration04.png

サーバー配信設定にて「テスト配信(ドライラン)」の「有効にする」にチェックを入れている場合、即時配信ボタンを押した後に「テスト配信(ドライラン)」ボタンを押すことで、ドライランを行うことができます。
ドライランを行うことで転送内容の確認を行うことができます。転送結果は配信履歴にて確認可能です。

ssp_server_configuration10.png

サーバー配信の状況(配信中・待機中)は以下の3種類の方法で確認することができます。

  1. Movable Typeのダッシュボード
    ※Movable Typeのダッシュボードからサーバー配信状況を確認する場合、[ダッシュボード] - [ウィジェットの選択]より[サーバー配信]を選択し、[追加]ボタンを押していただく必要がございます。
  2. サイトのダッシュボード
    ※サイトのダッシュボードからサーバー配信状況を確認する場合、[システム] - [サイト] - [一覧] よりサーバー配信を実行しているサイトを選択した後、[ウィジェットの選択]より[サーバー配信]を選択し、[追加]ボタンを押していただく必要がございます。
  3. サーバー配信画面
    左カラムより[サーバー配信] - [サーバー配信]を選択すると確認することができます。

過去の配信ファイルリストを削除する

転送方法に「FTP(s)」「Amazon S3」を使用したサーバー配信では、サーバー配信実行時に配信したファイル情報(配信ファイルリスト)を保存しておき、次回のサーバー配信実行時には、保存されているファイル情報を用いて変更されていると判断されたファイルのみ配信を行います。過去の配信ファイルリストを削除を行うことで、次回のサーバー配信実行時には、すべてのファイルが配信されるようになります。なお、転送方法に「rsync」を使用する場合には、この配信ファイルリストは使用されません。

ssp_server_configuration05.png

サーバー配信(個別配信)の設定

配信先を設定する

フォルダ単位、ファイル単位でのサーバー配信を行う際には、[サーバー配信設定]に登録されている配信先に対して配信を実行します。
設定方法は本ドキュメントの「サーバー配信の設定」を参照してください。

サーバー配信(個別配信)の実行

  1. サイドメニューから[サーバー配信]を選択します
  2. 配信を実行したい設定名の横にある個別配信ボタンを押します
ssp_server_configuration06.png

配信方法は以下の2種類があります

直接配信
配信先に対して、run-periodic-tasksを使用せず、直接サーバー配信を実行します
サーバー配信設定の「通知設定」を指定している場合、実行結果をメールで受け取ることができます
  1. [サーバー配信日時]の[直接配信する]にチェックを入れます
  2. [ファイル選択]で配信したいフォルダまたはファイルにチェックを入れます(複数選択可)
    選択したフォルダ、ファイルは[選択中のファイル]項目よりご確認いただけます
  3. [コメント]に自由にコメントを記載することができます
  4. [配信する]をクリックすると、すぐに配信が実行されます

※直接配信の処理時間が長くなるとウェブサーバーの設定によりタイムアウトエラーを起こす可能性があります。処理時間が長くならないよう選択するファイルとディレクトリの数に注意してください。

配信予約
「サーバー配信日時」で指定した日時に配信を実行します。
サーバー配信設定の「通知設定」を指定している場合、実行結果をメールで受け取ることができます。
  1. [サーバー配信日時]で配信日時を入力します
  2. [ファイル選択]で配信したいフォルダまたはファイルにチェックを入れます(複数選択可)
    選択したフォルダ、ファイルは[選択中のファイル]項目よりご確認いただけます。
  3. [コメント]に自由にコメントを記載することができます。
  4. [配信する]をクリックするとジョブ登録が完了し、指定した日時にサーバー配信が実行されます

※サーバー上で、run-periodic-tasks が動作するように設定されている必要があります

※毎週決まった曜日に実行するなどの定期実行について「サーバー配信定期実行スクリプトの設定」を参照ください

ssp_server_configuration07.png

個別配信の状況(配信中・待機中)も通常のサーバー配信と同様の方法でご確認いただけます

サーバー配信履歴の確認

サイドメニューの[サーバー配信] - [サーバー配信履歴]からサーバー配信の履歴を確認することができます

ssp_server_configuration08.png

転送ログのダウンロード

サーバー配信のログを1配信毎にダウンロードすることができます。

  1. ログを確認したい配信履歴の[転送ログ]にあるログボタンをクリックします
  2. ポップアップが開かれ、転送ログが表示されます
  3. ポップアップ画面下の「ダウンロード」ボタンをクリックすることでログファイル(.log形式)がダウンロードされます

転送ログはmt-static/support/smartsync/logsディレクトリに保存される仕様となっております。
機密情報などを取り扱っている場合には、外部からのアクセスを防ぐため以下のように保存場所を変更いただく必要がございます。

・環境変数で対応する場合
- SmartSyncSupportPathを変更
- SyncPackのディレクトリ指定をmt-static/supportディレクトリ以外の場所に指定する(ドキュメントルートより上位の階層など)。
※SupportDirectoryPathを変更する方法もございますが、一部のファイルが表示できなくなる場合がございます(ユーザサムネイルなど)。
・Apacheでアクセス制御する場合
- RewriteRule .*\.(?:dat|txt|sql|dump|bak|log|inc)$ - [R=403,L]
※外部から表示されると問題になる可能のある拡張子の場合にアクセスを制限する事が出来ます

サーバー配信ロールの設定

ロールに対してサーバー配信の実行権限を割り当てることができます
サーバー配信の実行権限を持つロールを割り当てられたユーザーは、そのサイトにおいてーバー配信の設定・ジョブ登録・実行を行うことができます

  1. [システム]のサイドメニューから[ロール]を選択します
  2. 設定したいロールの設定画面を開き、[サーバー配信の管理]にチェックを入れて設定を[変更を保存]ボタンを押します
ssp_server_configuration09.png

通知メールの編集

サーバー配信およびジョブ登録通知メールの編集は[システム]-[デザイン]-[グローバルテンプレート]-から行うことができます。

mail.png

サーバー配信定期実行スクリプトの設定

  • サーバー配信の定期実行を行います。
  • 配信ログが出力されます。(DBのレコードと配信ログ・ファイル)

※未来の日付の配信予約がある場合は本機能はご利用いただけません。
※個別配信には対応いたしません。

設定方法

  1. toolsに「sync.pl」ファイルを追加します
  2. 「sync.pl」のパーミッションを755に変更します
  3. cronで下記の設定を行います
    	cd /path/to/mt; ./tools/sync.pl --name <実行ユーザー名> --setting_id <同期設定ID>
    	
    ※path/toはMTインストールディレクトリまでのサーバーパスに置き換えます。
    ※実行ユーザー名...Movable Typeのユーザー名(システム管理者など)
    ※同期設定ID...該当のサーバー配信設定画面のURLをご確認ください。下記の場合は「4」となります。
    	https://example.com/mt.cgi?__mode=cfg_smartsync&id=4&blog_id=1
    	
  4. cronで配信スケジュールを設定します
  5. サーバー配信の定期実行が開始されます

注意事項

  • 即時配信や配信予約が登録された場合には、その配信が完了するまで定期実行は停止します。
  • 配信完了後は、再び定期実行がスケジュール通りに開始されます。

サーバー配信の制限事項

以下の内容は制限事項となり、将来のバージョンでも修正の予定はありません。
  • 配信先サーバーは静的コンテンツのみの利用を推奨しております。

    サーバー構成や運用方法によりダイナミック・パブリッシングの利用や、PHPなどの動的コンテンツの動作等も可能となります。

  • コメントやトラックバックは、配信元のサーバーで動作する Movable Type で受信することができます。ただし、受信したコメントやトラックバックが含まれたコンテンツは、配信先のサーバーに自動では配信されません。次のサーバー配信の実行時に、配信先のサーバーに配信されます。
  • [mt-static] ディレクトリに含まれるコンテンツは、配信されません。