FastCGI

Movable Type 3.34ではFastCGIのサポートの向上がなされたらしい。
今までFastCGIにしてなかったので、設定してみた。

具体的には、SIX APART DEVELOPER WIKIRunning 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に勝手に変更された。
コメントも試したところ、動いているみたい。早くなった気はしないけどね。。。

早くなったかどうかは別として、とりあえず、動いていることが重要なので、これでしばらく使ってみよう。

コメントを残す