FastCGIでMovableTypeの高速化
同僚のohkawa氏が最近ブログをTP(Tokyo Promenade)に変更しました。
さすがにCで書かれているだけあってバカみたいに速い。。。
ちょっと羨ましさは感じますが、マネするのはしゃくな気もするので私はMovableTypeで突き進みます。
ただ、エントリが少ないにも関わらず既に若干の遅さを感じているのも事実。
そこでFastCGIを導入してMovableTypeの高速化を計ることとしました。
FastCGIとは⌗
例えばMovableTypeはPerlで作られていますが、これらのインタプリタ言語では
ユーザからCGIにアクセスがある度に、プロセスの生成や破棄、実行できる状態にコンパイルを
行うためオーバーヘッドが大きく動作が遅くなります。
FastCGIではCGIのプロセスをメモリに記録しておくことでこれらのオーバーヘッドを軽減する
効果があります。
同じ高速化の方法としては、他にSpeedyCGIやmod_perlがあります。
環境⌗
CetnOS5.4
Apache2.2.3系
MovableType5
設定⌗
Perl モジュールのインストール⌗
# cpan FCGI
# cpan CGI::Fast
httpd-develのインストール⌗
# yum install httpd-devel
FastCGIライブラリ(fcgi)のインストール⌗
# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
# tar zxvf fcgi-2.4.0.tar.gz
# cd fcgi-2.4.0
# export APXS=/usr/sbin/apxs
# ./configure
# make
# make install
mod_fcgidのインストール⌗
# wget http://ftp.riken.jp/net/apache/httpd/mod_fcgid/mod_fcgid-2.3.5.tar.gz
# tar zxvf mod_fcgid-2.3.5.tar.gz
# cd mod_fcgid-2.3.5
# ./configure.apxs
# make
# make install
FastCGIの設定⌗
fcgiの設定ファイル作成
# vi /etc/httpd/conf.d/fcgid.conf
MTの設定⌗
# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/cgi-bin/mt">
AllowOverride None
Options None
Order allow,deny
Allow from all
<FilesMatch "^mt(?:-(?:comments|search|ftsearch|tb|cp))?\.cgi$">
SetHandler fcgid-script
</FilesMatch>
</Directory>
httpdサービスの再起動⌗
設定が完了したらモジュールの読み込みと設定の反映のためhttpdを再起動します。
# /etc/init.d/httpd restart
確認⌗
一時的にhttpd.confのServerTokenをFullに設定する
# vi /etc/httpd/conf/httpd.conf
ServerToken Full
# /etc/init.d/httpd restart
telnetで80番ポートに接続する
# telnet localhost 80
HEAD / HTTP/1.0
[ Enter ]
[ Enter ]
Server: Apache/2.2.3 (CentOS) DAV/2 mod_fcgid/2.3.5 ← mod_fcgidが表示されればOK
参考URL⌗
MOVABLE TYPE.JP
http://www.movabletype.jp/documentation/developer/server/fastcgi.html