FastCGI+Apache インストールメモ(mod_fcgid)
意外と簡単、すんなりできた、FastCGI。
FastCGIって何?
普通のCGIだと都度起動するオーバーヘッドが激しい。そこで、別プロセスでプログラムを起動しておいてそちらに処理をお願いできる仕組みにする。phpの処理はそちらにお願いできるので、Apacheのプロセスにはphpなどの機能をモジュールとして組み込まないでよい。
Apacheには、その仕組み(FastCGI)に処理をお願いできるようにするモジュールだけ組み込む。それがmod_fcgidやmod_fastcgi。
なので、FastCGI と mod_fcgid または mod_fastcgi(どちらか一方でよい)をインストールする。
FastCGIインストール
ダウンロードページのCurrent(現バージョン)のDownloadからダウンロード。
$ cd /usr/local/src/ $ wget http://www.fastcgi.com/dist/fcgi.tar.gz $ tar xzf fcgi-2.4.0.tar.gz $ cd fcgi-2.4.0 $ ./configure $ make # make install
mod_fcgidインストール
ダウンロードページからmod_fcgid-x.x.x.tar.gzをダウンロード。
$ cd /usr/local/src/ $ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/mod_fcgid/mod_fcgid-2.3.5.tar.gz $ tar zxf mod_fcgid-2.3.5.tar.gz $ cd mod_fcgid-2.3.5/ $ ./configure.apxs $ make # make install
Apacheを設定
モジュールができたので、使用するよう設定
こちらはmake install時に勝手に追記されているはず
LoadModule fcgid_module /usr/lib/httpd/modules/mod_fcgid.so
あとはこんな設定を該当のディレクトリなどに適用すれば*.phpの拡張子でphpがFastCGIで実行される。
<Directory /xxx/xxx/xxx> Options ExecCGI AddHandler fcgid-script .php FCGIWrapper /usr/local/bin/php-cgi .php </Directory>
conf.dディレクトリにファイルを作って、fcgid用の設定を書いて細かく設定するのもよい。(ディレクティブ一覧)
# 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>
FastCGIでphpinfo()
phpinfo.php(ファイル名は任意)というファイルに <?php phpinfo();
とだけ書いて、ブラウザでアクセス。
画像のconfigureオプションに–enable-fastcgiが見えるが、php5.3.3からはそんなオプションなくなりました(いつも有効)。間違って書いてしまった。
コメント