TOP Main BBS Paint BBS FFXI on SW LUNATIC DAWN KOIKI UserList Mail Form

2007年04月29日

モジュールを追加

先日行った「MTのFastCGI化」の備忘録。これは自宅サーバーを公開している方向けかもしれません。

サーバーがスペックダウンした事により、MT再構築が困難(全体の再構築に1時間も掛かる)なので、少しでも動作を早くする為にFastCGIを導入する事にしました。
一つ断っておくと、当サイトのApacheのバージョンは1.3なので、2.2とはインストール方法が多少異なります。テスト環境は2.2だったので、どちらも書いておきますが[:sweat:] なお、ディストリビュージョンは「Vine Linux 3.2 & 4.1」です。

現サーバーは「Vine Linux 3.2」で、基本的にApache1.3がインストールされています。インストールが必要なものは「fcgi」「mod_fastcgi」なので、以下のように作業します。
まずは「fcgi」のインストール。

$ wget http://www.fastcgi.com/dist/fcgi-2.4.1-SNAP-0311112127.tar.gz
$ tar zxvf fcgi-2.4.1-SNAP-0311112127.tar.gz
$ cd fcgi-2.4.1-SNAP-0311112127
$ ./configure
$ make
$ su
# make install

Vine3.2のApacheはDSO対応なので、「mod_fastcgi」は以下のようにインストール。

$ wget http://www.fastcgi.com/dist/mod_fastcgi-SNAP-0404142202.tar.gz
$ tar zxvf mod_fastcgi-SNAP-0404142202.tar.gz
$ cd mod_fastcgi-SNAP-0404142202
$ /usr/sbin/apxs -o mod_fastcgi.so -c *.c
$ su
# /usr/sbin/apxs -i -a -n fastcgi mod_fastcgi.so

次にFastCGI用のPerlも追加します。

su
perl -MCPAN -e shell
install FCGI
install CGI::Fast
exit

あとはhttpd.confに以下を追加して保存、Apacheを再起動します。

LoadModule fastcgi_module modules/mod_fastcgi.so
#これ↑は自動で追加されるようです。ただし、パスが狂っている場合があるので、必ず確認してみましょう。

<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
FastCgiConfig -autoUpdate -idle-timeout 300
</IfModule>

「FastCgiConfig」の設定はいろいろ書かれていますが、気にしなくても良さそうです。ただ、「-idle-timeout」の値は「120」では再構築でタイムアウトする可能性が高いので、このくらいが良いみたいです。なお、ディレクトリ「/tmp/fcgi_ipc/」はOS上での設定は不要です。Apacheが自動的に作成してくれます。

その後MTのスクリプトの拡張子を「fcgi」に変更、mt-config.cgiにも変更を追加します。この辺は各所で情報が出ているので省きます。
これでMTをFastCGIで動作させられると思います(できなくても責任は取れませんが[:sweat:])。


Apache2.2の場合、「fcgi」は同じようにインストールできますが、「mod_fastcgi」は手順が異なります。と言うのは、「mod_fastcgi」がコンパイルできない(Vine4.1の場合のみ?)ので、ダウンロード・展開・ディレクトリ移動後に以下のようにします。また、libtool()を使ってインストールします。

$ wget http://www.fastcgi.com/dist/mod_fastcgi-SNAP-0404142202.tar.gz
$ tar zxvf mod_fastcgi-SNAP-0404142202.tar.gz
$ cd mod_fastcgi-SNAP-0404142202 ←ここまで同じ
$ wget http://kokogiko.net/fastcgi-apache22-patch ←パッチをダウンロード
$ patch -p1 < fastcgi-apache22-patch ←パッチを当てる

次にコンパイルするためのファイルをコピーします。また、ファイル内容のディレクトリがVineと違うので修正します。

$ cp Makefile.AP2 Makefile
$ vi Makefile

 top_dir = /usr/local/apache2
            ↓
 top_dir = /usr/lib/apache2

修正後に保存し、コンパイルしてインストールします。

$ make LIBTOOL=/usr/lib/apr-1/build/libtool ←libtoolを利用してインストール
$ su
# make install LIBTOOL=/usr/lib/apr-1/build/libtool ←libtoolを利用してインストール

こちらはhttpd.confに自動でモジュールが追加されなかったので追加しました(インストールも怪しげでしたがファイルはコピーされていました)。

LoadModule fastcgi_module modules/mod_fastcgi.so ←これ

#以下は必ず手動で追加します。
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
FastCgiConfig -autoUpdate -idle-timeout 300
</IfModule>

保存してApacheの再起動とPerlのインストールもお忘れなく。

※追記:
Vine Linux 4.1にてlibtoolでモジュールを追加する場合、apache2-develをインストールする必要があります。Vineをインストールした状態ではインストールされていません。

Posted by wind at 18:37 | Comments [0] | Trackbacks [0]
トラックバックURL


コメントして下さい




太字 イタリック アンダーライン ハイパーリンク 引用


コメントありがとうございます♪
最後にコードの入力をお願いします。「確認」する場合は修正ページで入力してください。なお、サインインした場合は表示されません。