FastCGIを設定

電脳備忘録
このブログはMovableType5で構築しているのですが、最近サイト表示が遅くそれらの改善に取り組んでいます。memcachedの設定、mod_deflateに続き、今度はFastCGIを設定してみることにします。出来ることはとりあえず何でもやってみます。

お約束

いつものアレです。参照は自己責任でお願いします。

参照サイト

MovableType.jpの「FastCGIのインストールと設定」を参照しました。

環境

CentOS5.7 64bit

やったこと

FCGIモジュール、CGI::Fastモジュールをcpanからインストール
# cpan FCGI
# cpan CGI
httpd-develのインストール
# yum install httpd-devel
FastCGIライブラリのダウンロードとインストール
# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
# tar zxvf fcgi-2.4.0.tar.gz -C /usr/local/src
# cd /usr/local/src/fcgi-2.4.0
# ./configure
# make
# make install
mod_fcgidのダウンロードとインストール
# wget http://ftp.riken.jp/net/apache/httpd/mod_fcgid/mod_fcgid-2.3.6.tar.gz
# tar zxvf mod_fcgid-2.3.6.tar.gz -C /usr/local/src/
# cd /usr/local/src/mod_fcgid-2.3.6/
# ./configure.apxs
# make
# make install
FastCGIの設定 mod_fcgid.soがapacheの設定ファイルに追加されていることを確認
# vi /etc/httpd/conf/httpd.conf
# LoadModule fcgid_module /usr/lib64/httpd/modules/mod_fcgid.so
設定ファイルを新規作成
# vi /etc/httpd/conf.d/fcgid.conf
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /tmp/fcgid_sock/
IPCConnectTimeout 20
MaxProcessCount 8
DefaultMaxClassProcessCount 2
TerminationScore 10
SpawnScore 80
IdleTimeout 300
</IfModule>
Apacheの設定変更。以下の設定を追加する
# 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>
webサーバ再起動
# service httpd restart
再起動後、記事を書いて下書き保存を実行したら「Internal Server Error」を返されてしまいました。エラーログ見て下記のエントリーを参考にして解決できました。
mod_fcgid: read data timeout in 40 seconds
# vi /etc/httpd/conf.d/fcgid.conf
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /tmp/fcgid_sock/
IdleTimeout 3600
ProcessLifeTime 7200
MaxProcessCount 1000
DefaultMinClassProcessCount 3
DefaultMaxClassProcessCount 100
IPCConnectTimeout 8
IPCCommTimeout 360
BusyTimeout 300
</IfModule>
体感としては高速化した実感がありません。設定がおかしいのかな?

2011.10.2追記

500エラーが頻発するようになったので設定をはずしました...。よくよく調べないといけませんね...。

広告

ブログの維持費に充てるでございます・・・。