Movable Type for AWSでプラグインやテーマをアップロードする方法の検討

公開

Movable Type for AWSでサイトを運用する場合、Movable Type(以下MT)のプラグインやテーマといったファイルをアップロードする必要が出てくると思います。運用開始後、もしかするとクライアントさんがMTで管理しないファイルをアップロードしたいといった要望も出るかもしれません。どのようにしたら良いかを検討してみましたので、記録を残しておきます。

SFTP

アップロード方法としてまず思いつくのは、SFTPではないかと思います。デフォルトのec2-userユーザーを使えば、サーバーの設定を変更することなく接続は可能です。しかしながら、MTが格納されている/app/movabletypeディレクトリの所有者はwww、パーミッションは755なので、アップロードは不可能です。

ec2-userをwwwグループに入れて、chmod g+w pluginsなどとしていけば良さそうですが、アップロード先はいくつかあるのでなかなか大変かもしれません。また、アップグレード(昨日の記事を参照)の仕方によっては、アクセス権の設定を再度行わなければならず、手間かもしれません。さらに、SSHを使えない人がWidget Manager version 1.1のような不要プラグインを削除できるようにするとなると、さらにアクセス権の設定が必要です。

FTP(S)

FTPサーバーを導入する方法も実験してみました。Amazon Linuxであれば、yumでvsftpdをすぐにインストールすることが可能です。

vsftpdの設定は、FTPサーバー構築(vsftpd) - CentOSで自宅サーバー構築等で詳しく解説されています。追加でユーザーwwwにパスワードを設定したり、セキュリティグループでポートを開ける設定をしたり、他細々と設定が必要ですが、Linuxに慣れている方であれば問題ないかと思われます。

この方式であれば、/app/movabletypeなどのパーミッションを変えることなく、プラグインやテーマのアップロードが可能になりました。MT以外のファイルは所有者がroot等になっており、誤って編集したり削除したりすることは出来ないはずなので、安全ではないでしょうか。

先に書いた「クライアントさんがMTで管理しないファイルをアップロードしたい」といった要望がある場合は、下記条件でユーザーを追加すれば良いと思います。

  • グループはwww
  • ホームディレクトリは/data/file/static
  • /sbin/nologinを指定

そして/data/file/staticディレクトリのパーミッションを775に設定します。追加したユーザーを/etc/vsftpd/chroot_listに加えなければ、/data/file/static以下を除いてたどれないので、MTのファイルが編集されてしまうといった心配がありません。

懸念事項