これはどんな話題か?
MTは5.2で公式にPSGI対応になり、Plack や Starman で起動すると CGI よりも目に見えて高速に動作するようになります。ただこういった形で起動をした場合、 実運用の環境で利用するためには MySQL や Apache などと同じように起動し続けるプログラムとしてデーモン化する必要があるのですが、これが少し敷居の高いところかもしれません。
この記事では、比較的少ない設定作業でMTを安定してデーモン化する方法として、CentOS や Ubuntu で利用できる upstart を使うものと、最新の Fedora で利用できる systemd を使うものの2つをご紹介します。
前提
まず最初に、各方法の設定ファイルの中で前提となっている部分の説明をします。
MT のインストール先
サンプルの設定ファイルでは、MTが以下のディレクトリへインストールされているものとしています。
- /home/movabletype/public_html/movabletype
実際に利用する場合にはインストール先の環境に合わせて書き換えてください。
PSGI 環境のセットアップ
starman コマンドが「/usr/bin/starman」にインストールされていて、かつその starman コマンドで mt.psgi が実行できるよう、mt-config.cgi などの設定が済んでいることが前提になっています。
実効ユーザー
サンプルの設定ファイルでは、実効ユーザーとグループは「movabletype」という新たに作成したユーザーにしています。Ubuntu であればここは「www-data」でも適当だと思います。
upstart を使ったデーモン化
最新の CentOS や Ubuntu では OS の起動に upstart と呼ばれるものが使われていますが、これを使うと簡単に MT をデーモン化することができます。
設定ファイルは以下のようになります。
このファイルを「/etc/init/movabletype.conf」に置いてサーバーを再起動するとMTがデーモンとして起動します。
CentOS release 6.3 (upstart は 0.6.5) と Ubuntu 12.04.1 LTS (upstart は 1.5) で動作を確認しています。
Ubuntu 12.04.1 の upstart をデフォルトの設定で使っている場合には、上記の設定だけで「 /var/log/upstart/movabletype.log」に Starman のログが出力され、またログファイルのローテーションも適宜行われます。(CentOS release 6.3 の upstart ではログは残りません。)
systemd を使ったデーモン化
最新の Fedora では OS の起動に upstart に代わって systemd が利用されていますが、これを使っても簡単に MT デーモン化することができます。
設定ファイルは以下のようになります。
このファイルを「/lib/systemd/system/movabletype.service」に置いてから、コマンドとして「sudo systemctl enable movabletype.service」を実行すると設定がインストールされるので、その後サーバーを再起動するとMTがデーモンとして起動します。
Fedora release 17 (Beefy Miracle) (systemd は 44) で動作を確認しています。
Starman のログは「/var/log/messages」に出力されます。
まとめ
ファイルをアップロードするだけで使えていた CGI の環境と比較するとデーモン化は敷居の高い設定だと思いますが、上記のような方法であればファイルを1つ用意するだけなので、MT を PSGI で動かしてみたついでに試してみるといいのではないかと思います。
コメントする