Movable Type 3.34ではFastCGIのサポートの向上がなされたらしい。
今までFastCGIにしてなかったので、設定してみた。
具体的には、SIX APART DEVELOPER WIKIのRunning Movable Type Under FastCGIを参考にした。
まず、FastCGIが既にインストールされているかどうかの確認。
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
FastCGIConfig -autoUpdate -idle-timeout 120 -killInterval 3600 -maxClassProcesses 6 -maxProcesses 15
</IfModule>
上記を/etc/apache2/apache2.confに記述。先のBlogではMTのcgiの入っているディレクトリに、.htaccessを置いて、そこに書くように言われているが、面倒なので全体に指示。サイトによっては、httpd.confの場合もあるかも。
.confをいじったなら、/etc/inet.d/apache2 restart
次に、HelloWorld.fcgiというファイルをMTのcgiの入っているディレクトリに置く。
#!/usr/bin/perl
# Hello World Script
# Filename: hello.cgi, or hello.fcgi
print “Content-type: text/htmlnn”;
print “Hello world.”;
chmod で実行権をつける。んで、Webブラウザから実行して、画面にHello worldと表示されれば、FastCGIが動いている。もし、エラーが出たり、スクリプトがそのまま表示されたりしたら、なんかおかしい。僕も最初、実行権をつけるのを忘れてスクリプトがそのまま表示された。
次に、MovableTypeをFastCGIで動かす。
先のBlogでは、AutomaticallyとManuallyのふたつの設定方法が書かれている。
Automaticallyでは、Apacheの設定でCGIをFastCGIで動かす。
#AddHandler cgi-script .cgi
AddHandler fastcgi-script .cgi
てなふうに.cgiの拡張子のファイルをfastcgi-scriptで処理してしまう。.htaccessに書けばそのディレクトリだけ。/etc/apache2/apache2.confに書けば全体がFastCGIで動くようになる。
今回はなんとなく、Manuallyの方でやってみた。
- mt.cgiをmt.fcgiというファイル名でコピー
- mt-comments.cgiをmt-comments.fcgiというファイル名でコピー
- mt-tb.cgiをmt-tb.fcgiというファイル名でコピー
- mt-view.cgiをmt-view.fcgiというファイル名でコピー
- mt-search.cgiをmt-search.fcgiというファイル名でコピー
拡張子がfcgiになったことにより、FastCGIで動くようになる。
次に、mt-config.cgiにある、
AdminScript mt.cgi
CommentScript mt-comments.cgi
TrackbackScript mt-tb.cgi
SearchScript mt-search.cgi
ViewScript mt-view.cgi
というあたりを
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi
ViewScript mt-view.fcgi
に変更する。僕の場合、この項目が存在しなかったというか、.plで書く場合にサンプルがコメントアウトされている状態だったの、上記を足した。
以上でおしまい。あとは今までどおりつかえる。今までどおりmt.cgiにアクセスしても、後は勝手に.fcgiになるので入り口だけ普通のCGIであとはFastCGIで動いている模様。
表記されているトラックバックURLも.fcgiに勝手に変更された。
コメントも試したところ、動いているみたい。早くなった気はしないけどね。。。
早くなったかどうかは別として、とりあえず、動いていることが重要なので、これでしばらく使ってみよう。