logo
home > web > MTにFastCGIを導入して高速化できるか試してみた

MTにFastCGIを導入して高速化できるか試してみた

MTの動きが重たいので、高速化してみる。手始めにFastCGIを導入して動かしてみる。

まずはCPANでモジュールをインストール

#perl -MCPAN -e shell
> install FCGI
> install CGI


httpd-develのインストールをyumコマンドで行います

# yum install httpd-devel



FastCGIライブラリ(fcgi)のインストール

以下のページからダウンロードを行います。
http://www.fastcgi.com/

ダウンロード
# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz

tarballの伸張
# tar zxvf fcgi-2.4.0.tar.gz -C /usr/local/src
# cd /usr/local/src/fcgi-2.4.0

configureの実行
# ./configure

make, make installの実行
# make
# make install


mod_fcgidのインストール

以下のページからダウンロードを行います。
http://httpd.apache.org/mod_fcgid/

ダウンロード
# wget http://ftp.riken.jp/net/apache/httpd/mod_fcgid/mod_fcgid-2.3.5.tar.gz

tarballの伸張
# tar zxvf mod_fcgid-2.3.5.tar.gz -C /usr/local/src/
# cd /usr/local/src/mod_fcgid-2.3.5/

DSOとしてインストールするためにconfigure.apxsを実行します。
# ./configure.apxs

make, make installの実行
# make
# make install


FastCGIの設定

設定ファイルを新しく作成します。
# 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>

設定ファイル(make installで正しく設定出来なかった場合)
通常はmake install時に自動的に/etc/httpd/conf/httpd.confにmod_fcgid.soの情報が追記されますが、追記されない場合は下記のように明示的にLoadModule行を指定してください。

LoadModule fcgid_module /usr/lib/httpd/modules/mod_fcgid.so

<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>


MTの設定方法

設定をMTディレクトリ内だけで行う方法

「MTの設定方法(その1)」と違い、Apacheの設定変更を必要しないという利点があります。

FastCGIでMTを動かすため、拡張子を"cgi"から"fcgi"に変更します。
# cd /var/www/cgi-bin/mt/
# cp -a mt.cgi mt.fcgi
# cp -a mt-comments.cgi mt-comments.fcgi
# cp -a mt-tb.cgi mt-tb.fcgi
# cp -a mt-search.cgi mt-search.fcgi
# cp -a mt-ftsearch.cgi mt-ftsearch.fcgi
# cp -a mt-cp.cgi mt-cp.fcgi (Community Solution を利用する場合)

FastCGIで起動するようにMTの設定ファイル「mt-config.cgi」を修正する必要があります。
# vi /var/www/cgi-bin/mt/mt-config.cgi

mt-config.cgiの最後に追加してください。
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi (もしくは mt-ftsearch.fcgi)
ViewScript mt-view.fcgi
CommunityScript mt-cp.fcgi (Community Solution を利用する場合)
httpdサービスの再起動

設定の変更とモジュールの読み込みを行うためhttpdをリスタートします。
# service httpd restart

以上

JavaScript Journal | JavaScript総合情報サイト

このブログ記事について

このページは、marooonが2011年3月 1日 13:30に書いたブログ記事です。

ひとつ前のブログ記事は「Facebookアプリを作ってFacebookページに外部から投稿してみた」です。

次のブログ記事は「MTテンプレート内で変数にMTタグ情報を格納するときの方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。