Movable Type 3.34をFastCGIで動作させる手順

※メールフォームプラグインV1.20の解説の続きは、明日以降に順次行います。

Movable Type 3.34日本語版がリリースされましたが、「FastCGI化が容易になった」という特徴があります。
そこで、当方がテストした際のFastCGI化の手順の概略を紹介します。

なお、サーバーやApacheのバージョン等によって、細かな点は異なることもありますので、その点はご容赦ください。

1.テスト環境

当方では、以下の環境で動作をテストしました。

OSFedora Core 6
ApacheApache 2.0.59

Apacheはソースからコンパイルして、デフォルトのディレクトリ(/usr/local/apache2)にインストールしました。
また、FastCGIのモジュール(mod_factcgi)はDSOでApacheに組み込みました。

2.libtoolのコンパイル

後でFastCGIのApache用のモジュールを作りますが、その際に「libtool」というツールを利用します。
Apacheにlibtooolが含まれていますが、バージョンが合わないのか、うまく動作しませんでした。
そこで、こちらからlibtoolの最新版(現状では1.5.22)をダウンロードして、以下のようにコンパイルします。

tar xvzf libtool-1.5.22.tar.gz
cd libtool-1.5.22
./configure
make
su
make install

そして、「cp /usr/local/bin/libtool /usr/local/apache2/bin」として、コンパイルされたlibtoolを、Apacheのbinディレクトリにコピーします。

3.FastCGIのインストール

次に、FastCGIをインストールします。
こちらからFastCGIの最新版(現状ではfcgi-2.4.0.tar.gz)をダウンロードして、以下の手順でインストールします。

tar xvzf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
su
make install

4.mod_fastcgiのインストール

次に、Apacheのmod_fastcgiモジュールをインストールします。
先ほどのFastCGIのダウンロード元に、mod_fastcgiのファイルもありますので(現状ではmod_fastcgi-2.4.2.tar.gz)、それをダウンロードします。
そして、以下の手順でインストールします。

tar xvzf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
cp Makefile.AP2 Makefile
make
su
make install

5.ディレクトリの作成

FastCGIを動作させるために、root権限で以下のコマンドを実行して、ディレクトリを作って書き込み可能にしておきます。

cd /tmp
mkdir fcgi_ipc
chmod 707 fcgi_ipc
mkdir fcgi_ipc/dynamic
chmod 707 fcgi_ipc/dynamic

6.Apacheの設定の書き換え

次に、Apacheの設定ファイル(httpd.conf)に以下のような記述を追加します。

LoadModule fastcgi_module modules/mod_fastcgi.so

<IfModule mod_fastcgi.c>
    FastCgiIpcDir /tmp/fcgi_ipc/
    AddHandler fastcgi-script .fcgi
    FastCgiConfig -autoUpdate
    FastCgiConfig -maxProcesses 5
</IfModule>

この後、Apacheを再起動します。
これで、拡張子が「.fcgi」のファイルは、FastCGIとして動作する状態になります。

7.Perlのモジュールのインストール

FastCGIでPerlのCGIを動作させるために、以下のようにして、「FCGI」と「CGI::Fast」をインストールします。

su
perl -MCPAN -e shell
install FCGI
install CGI::Fast
exit

8.mt-config.cgiの書き換えとCGIのリネーム

次に、mt-config.cgiに以下のような記述を追加して、Movable Typeの各CGIをFastCGIで動作させるようにします。

AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi

また、上記の記述に合わせて、mt.cgiをmt.fcgiにリネームするなどします。

9.FastCGI化したMovable Typeを利用する

ここまでで、Movable TypeのFastCGI化は完了です。
「http://Movable Typeのインストール先/mt.fcgi」にアクセスすると、FastCGI化したMovable Typeを利用することができます。

なお、CGIの名前が変わりましたので、テンプレート内の「<$MTAdminScript$>」等のタグの値も変わります。
テンプレートをすべて再構築して、それらのタグの値を更新する必要があります。

また、プラグインをインストールするなど、Movable Typeのシステムに何か変更を加えたときには、Movable Typeのディレクトリに入って「touch mt.fcgi」のコマンドを実行し、mt.fcgiのタイムスタンプを更新します。