mod_perliteでMT5が動作

モジュール版PHPと同じような原理で、PerlをApacheのモジュールとして動作させる「mod_perlite」があります。
この「mod_perlite」が久々にバージョンアップしました。
こちらで、Movable Type 5β3をmod_perliteで動作させたところ、特に問題なく動作するようです。

1.mod_perliteについて

mod_perliteは、Aaron Stone氏が開発したApache用モジュールで、PerlをApacheの一部のように動作させることができます。

一般に、Perlで書かれたCGIにアクセスすると、そのたびにPerlを起動するので、その分時間がかかります。
mod_perliteを使うと、Perlの起動の時間を短縮できますので、通常のCGIよりレスポンスが若干良くなります。

また、mod_perliteのもう1つのメリットとして、モジュール版PHPと同様に、パーミッションの設定が不要になる点があげられます。

これまでは、mod_perliteはPOSTプロトコルに対応していないという問題がありました。
しかし、今回のバージョンアップでPOSTプロトコルにも対応しました。

2.mod_perliteのインストール

mod_perliteは以下からダウンロードすることができます。

ダウンロード

Linuxの場合、ダウンロードしたファイルを解凍し、そのフォルダに入って、以下のコマンドを実行します。
「/path/to/apxs」の箇所は、Apacheのapxsのパスに置き換えます。

perl Build.PL --apxs=/path/to/apxs
./Build
su
./Build install

インストールが終わったら、Apacheのhttpd.confに以下の行を追加します。

LoadModule perlite_module modules/mod_perlite.so
AddType application/x-httpd-perlite .pcgi

最後に、Apacheを再起動します。
これ以後は、拡張子がpcgiのページにアクセスすると、そのPerlのスクリプトはmod_perlite配下で動作します。

3.効果はあるがわずか

当方のサーバーで、mod_perliteを使ったときと使わないときとで、Apacheのベンチマークツールの「ab」を使って、Movable Type 5の管理画面にログインする際のレスポンスの時間を計測してみました。
30回の平均を計測したところ、通常のCGIとmod_perliteとで、以下のような結果が得られました。

環境平均レスポンスタイム(ミリ秒)
CGI2315.667
mod_perlite2231.178

両者の差はおよそ85ミリ秒(=0.085秒)です。
mod_perliteの効果は数字的には一応ありますが、0.085秒では残念ながら体感はできませんでした。

Movable Typeの場合はソースコードが巨大です。
そのため、Perlの読み込みよりも、ソースコードの解釈にかかる時間の方がはるかに長いので、このような結果になったのだと思われます。