MtSFTPSync
Movable Type の公開ファイルを、
SFTP で Web サーバーへ。
Overview
MT のサイトディレクトリを、
そのまま Web サーバーに同期。
MtSFTPSync は、Movable Type の管理画面に SFTP 同期機能を追加するプラグインです。
静的サイトジェネレーターとして MT を活用している場合、サイトディレクトリのファイルを SFTP 経由でリモートサーバーに転送できます。レンタルサーバーや自社サーバーへの配信を、MT の管理画面から直接、差分チェック付きで実行できます。
FTP ソフトや独自スクリプトを使わず、SSH 公開鍵認証によるセキュアな転送が可能です。Net::SFTP::Foreign をプラグインに同梱しているため、追加モジュールのインストールは不要です。
Features
機能
同期先をツリー表示
SFTP サーバーのファイルをフォルダツリー形式で確認できます。同期先パスは自動的に展開表示。接続状態も管理画面上でひと目で確認できます。
サイズ・更新日時による差分チェック
ファイルのサイズと更新日時を比較し、変更がないファイルは転送をスキップ。2 回目以降の同期を大幅に高速化します。
同期先の不要ファイルを削除
同期元に存在しないファイルを同期先から削除する --delete オプションに対応。実行前に確認モーダルを表示し、誤操作を防止します。
同期対象を柔軟に管理
フォルダ・ファイル単位で同期除外パスを設定できます。除外されたアイテムはファイルツリーでグレーアウト表示されます。
MT のサイトログに記録
同期結果(upload / delete / unchanged / error の件数)を Movable Type のサイトログに記録。プラグイン設定でログ出力を有効にすると、同期結果をテキストファイル(logs/logfile_blog{ID}_YYYYMM_***.txt)にも書き出します。
サイトごとに異なる接続先を設定
MT の各サイトで、接続先のホスト・ポート・ユーザー・秘密鍵を個別に設定できます。複数サイトを運営している場合でも、転送先を柔軟に管理できます。
Screens
管理画面
Requirements
動作要件
システム要件
- Movable Type ソフトウェア版 8.8 以降
- Perl 5.16 以降
- OpenSSH クライアントが利用可能なサーバー
※ MT クラウド版での稼働は保証しかねます。
※ パスワード認証には非対応です。
SFTP 要件
- SSH 公開鍵認証が設定済みの Web サーバー
- MT 実行ユーザー(www-data 等)が読み取り可能な秘密鍵ファイル
- 同期先ディレクトリへの書き込み権限
使用 Perl モジュール
外部インストール不要(プラグイン同梱 / Perl コア)
| モジュール | 種別 | 用途 |
|---|---|---|
| Net::SFTP::Foreign | プラグイン同梱(Pure Perl) | SFTP 接続・ファイル転送 |
| Digest::MD5 | Perl コア | ファイル差分チェック |
| JSON::PP | Perl コア | AJAX レスポンス JSON 生成 |
| Encode | Perl コア | 文字エンコーディング処理 |
| POSIX | Perl コア | ログファイル日付処理 |
Disclaimer
免責事項
- 無保証
- 本プラグインは現状有姿(as-is)で提供されます。動作の正確性・完全性・特定目的への適合性について、いかなる保証も行いません。
- 免責
- 本プラグインの使用または使用不能によって生じた損害(データの損失・業務上の損失等を含む)について、Ethan Technology Japan 株式会社は一切の責任を負いません。
- 自己責任
- 本プラグインのインストール・設定・運用はすべて利用者自身の責任で行ってください。本番環境への適用前に、必ず検証環境でのテストを実施してください。
- サポート
- 本プラグインに対する技術サポート・バグ修正・アップデートの提供は保証しません。お問い合わせにはできる限り対応しますが、回答をお約束するものではありません。
- 変更・配布
- 自身の環境での改変は自由です。第三者への再配布・サブライセンスはご遠慮ください。
Setup & Usage
初期設定と使い方
1. インストール
- プラグインファイルを MT の
plugins/ディレクトリに配置 - MT 管理画面 システム → プラグイン を開く
- MtSFTPSync が一覧に表示されていれば完了
※ 同期ログを使用する場合は、plugins/MtSFTPSync/logs/ ディレクトリに書き込み権限(755 または 777)を付与してください。
2. SSH 公開鍵認証の準備
- 接続先サーバーで SSH 鍵ペアを作成
- 公開鍵を接続先サーバーに登録
- 秘密鍵を MT 実行ユーザー(www-data 等)が読み取れる場所に配置
- 秘密鍵のパーミッションを 600 に設定(緩いと SSH 接続が拒否されます)
3. MT ロールと権限
システム管理者は自動的に両権限を持ちます。一般ユーザーには システム → ロール で付与してください。
| 権限 | 対象機能 | 備考 |
|---|---|---|
| SFTPSyncの設定 | SFTP設定・ファイルリスト | 「サイト管理者」「設定の変更」と連動 |
| SFTPSyncによる同期 | SFTP同期実行 | 「サイト管理者」と連動 |
4. SFTP 設定
SFTPSync → SFTP設定 を開き、以下の項目を入力して保存します。
| 項目 | 説明 |
|---|---|
| SFTP ホスト | 接続先サーバーのホスト名または IP アドレス |
| ポート番号 | SFTP ポート番号(デフォルト: 22) |
| ユーザー名 | SFTP ユーザー名 |
| 秘密鍵ファイルパス | MT 実行ユーザーが読み取り可能な秘密鍵の絶対パス |
| 同期先パス | 接続先サーバー上の同期先ディレクトリ(絶対パス) |
| 同期元ディレクトリ | 省略するとサイトディレクトリを使用 |
| 同期対象除外パス | ファイル名またはディレクトリ名を指定(ディレクトリは末尾に / を付ける)。同期処理の対象から除外されます。 |
| 同期ログ | 有効にするとテキストログを出力 |
5. SFTP 同期の実行
- 左メニューの SFTPSync → SFTP同期 を開く
- 内容を確認して 同期実行 をクリック
- 確認モーダルで 実行する をクリックすると同期開始
- 同期先にあって同期元にないファイルを削除する を有効にすると不要ファイルを削除(警告ダイアログあり)
6. 同期結果の確認
- 左メニューの SFTPSync → 同期先ファイルリスト で同期先のファイルをツリー確認
- 同期結果(upload / delete / unchanged / error 件数)は MT サイトログ に記録
- ログ出力が有効な場合は
logs/logfile_blog{ID}_YYYYMM_***.txtにも書き出し
FAQ
よくある質問
- 再構築のたびに自動で SFTP 同期されますか?
- 自動同期には対応していません。再構築後、管理画面の SFTP 同期から手動で実行してください。
- 削除オプションを使うと、意図しないファイルまで削除される心配はありますか?
- 同期元ディレクトリに存在しないファイルのみが削除対象になります。実行前に確認ダイアログが表示されますので、内容をご確認の上で実行してください。別途、同期の対象からはずして触らないようにする、除外パスも設定できます。
- 接続できない場合、どこを確認すればよいですか?
- 設定(ホスト名・ポート・ユーザー名・秘密鍵のパス)が正しいかどうかをご確認ください。公開鍵認証が失敗している場合は、サーバー側のログを確認する必要があることもございます。
- MT の各サイトで、それぞれ別の接続先を設定できますか?
- はい。MT のサイトごとに設定が可能です。
- レンタルサーバー(さくら、エックスサーバーなど)でも使えますか?
- SSH 接続が許可されていれば使えます。ご利用のサーバーで SSH 公開鍵認証が利用可能かどうかは、各サービスの仕様をご確認ください。
- ポート番号は 22 番以外でも使えますか?
- 現在は 22 番固定です。変更が必要な場合はお問い合わせください。
- 不具合を見つけた場合はどうすればいいですか?
- お問い合わせフォームよりご連絡ください。対応をお約束するものではありませんが、内容を確認しできる限り対応いたします。