SREの落書かれ担当、及川です。

みんなでワイワイ夜遅くまでお酒を飲んでいると眠くなりますよね。 そんなときに暗闇から歩み寄る落書き野郎ども。手にはいつもの油性マジック。

前々回「お金がない!?さくらVPSなら月額980円でYahoo砲にも耐えちゃうよ!(サーバ構築 1/3)」、前回「「まだApache使ってます?」さくらVPSでnginx + mysql + php-fastcgi(サーバ構築 2/3)」に続き、Movable TypeをPSGI/Plackで動かす手順についてまとめました。

この回まで作業ができればイマドキのMTerに1歩近づきました。

cpanmをインストールする

cpanmは正しくはcpanminusといいます。開発者はmiyagawaさんです。
他のライブラリに依存することなく動作し、10MBのメモリがあれば動作するCPANモジュールのインストールツールです。

 $ yum -y install perl-ExtUtils-MakeMaker $ curl -L http://cpanmin.us | perl - --sudo App::cpanminus 

インストールが完了したかどうか、以下のコマンドで確認します。

 $ cpanm --version 

つづいて、starmanをインストールします。

Starmanをインストールする

次のコマンドを実行して、starmanをインストールします。

 $ cpanm Plack $ cpanm Task::Plack $ cpanm XMLRPC::Transport::HTTP::Plack $ cpanm CGI::Parse::PSGI $ cpanm CGI::PSGI 

PSGIサーバの起動スクリプトを設置する

Starmanを起動するスクリプトを作成します。これは任意のディレクトリにおいておきます。公開ディレクトリより上の階層に設置することが望ましいでしょう。

たとえば、前回はDocumentRootを/var/www/example.com/htmlにしたので、同じ階層にtools/ディレクトリを作成して、その中にスクリプトを設置します。

今回はPGSIサーバの起動スクリプトの作成前に、Starmanのログディレクトリを作成します。/var/log/starman の下にドメインごとにログを集計する仕様とします。

 # ログファイルの作成 $ mkdir -p /var/log/starman/example.com $ touch /var/log/starman/example.com/access.log $ touch /var/log/starman/example.com/error.log # 起動スクリプトの作成 $ mkdir /var/www/example.com/tools $ vi /var/www/example.com/tools/mt.sh #!/bin/sh cd /var/www/example.com/html/mt /usr/local/bin/starman -S /tmp/example.com_starman.sock --workers 4 --user nginx --group nginx --error-log /var/log/starman/example.com/error.log --access-log /var/log/starman/example.com/access.log --pid /var/www/example.com/tools/mt.pid --daemonize ./mt.psgi # 実行権限を付与 $ chmod 755 /var/www/example.com/tools/mt.sh 

mt-config.cgiの変更

MT管理画面に関するURLのパラメータを相対URLから絶対URLにする必要があります。
Starmanのプロセスファイルのパスも設定します。

 CGIPath http://example.com/mt/mt.cgi ... PidFilePath /var/www/example.com/tools/mt.pid 

nginxのリバースプロキシは前回「「まだApache使ってます?」さくらVPSでnginx + mysql + php-fastcgi(サーバ構築 2/3)」完了しているので、mt-config.cgiの設定が完了したらStarmanを起動してmt.cgiにアクセスしてみましょう。
ログイン画面が表示できたら成功です。

daemontoolsなど、サービス監視ツールを使うと安心です。

MTの管理画面がどのくらい速くなるのか?

だいたい2倍のスピードになります。ログイン後のユーザーダッシュボードは1秒を切るスピードです。
もちろん画面にもよりますが以前までのMovable Typeの管理画面とは思えないくらいストレスなくサクサク動きます(笑)

Starmanを使うときに忘れてはいけないこと

Movable Typeはプラグインが豊富でいろいろと追加したり試したくなります。追加もサーバにファイルをアップロードするだけのかんたんインストールなのでお手軽です。

ところが、Starmanを使う場合はFastCGIと同じように再起動しないと追加したファイルは読み込んでくれません。

そんなときは次のコマンドでStarmanを再起動してあげましょう。

 $ kill -HUP `cat /var/www/example.com/tools/mt.pid` 

さくらVPSでPSGI/PlackなStarmanを使ってMovable Typeを動かすところまでをご紹介しました。
もし前々回「お金がない!?さくらVPSなら月額980円でYahoo砲にも耐えちゃうよ!(サーバ構築 1/3)」、前回「「まだApache使ってます?」さくらVPSでnginx + mysql + php-fastcgi(サーバ構築 2/3)」の記事を読んでなければそちらもご参考ください。