CentOS 5.1(x86_64)な環境に、Apcache2.2 + FastCGI + mod_fastcgi を設置したのですが、手こずったのでメモ。すべての原因は環境がi386ではなく、x86_64だということに気づかず、ライブラリの指定などを間違えていたことにありました。
※ちなみに、uname -i でアーキテクチャを確認することが出来ます。
実行環境
- OS: CentOS 5.1
- Arc: x86_64
準備
下記パッケージをyumでインストールしました。
- apr
- apr-util
- apr-devel
- apr-util-devel
- httpd-devel
- httpd
- ruby
- ruby-devel
- ruby-rdoc
ライブラリ関係は、x86_64なので/usr/lib64におさまるようです。i386のものもyumで入るのですが、これは通常通り/usr/lib/に設置されます。
FastCGIインストール
fastcgi本体はyumになかったので、ソースからインストールしました。
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 ./configure make make install
FastCGIをx86_64用に設置
これで/usr/local/lib配下にlibfcgi関係が配置されますが、使っているのはx86_64なので
/usr/local/lib64/にこれらをすべてをコピー。
cp -r /usr/local/lib/* /usr/local/lib64/
かつ、ldconfig.so.d/hoge.confに/usr/local/lib64を追記してライブラリのパスを通します。
emacs /etc/ldconfig.so.d/hoge.conf ldconfig
で有効にします。
ruby-fastcgiインストール
次にrubyのfastcgiライブラリをインストールします。
gem install fcgi※ ここで can’t find header files for ruby. とエラーが出る場合は、ruby-develがインストールされていない場合に起こるようです。
mod_fastcgiインストール
./configureは必要なく、Makefileを直接編集し、top_dirを書き換えます。(top_dirはhttpd-develを展開した場所?)
デフォルトのままmakeすると、「special.mkがない」と出るので、ここでfindしたら
- /usr/lib64/httpd/build/special.mk
- /usr/lib/httpd/build/special.mk
という二カ所がヒット。64bitな環境なので、上の/usr/lib64を利用します。
cp Makefile.AP2 Makefile <makefile のtop_dirを/usr/lib64/~に変更> make make install
※巷ではApache2.2でpatchを当てる必要があるという話ですが、2.4.0は、もうすでにあたっている様子。
httpd.confの設定
インストールが完了したら、httpd.confの設定です。
LoadModule fastcgi_module modules/mod_fastcgi.soを追加して、Apache再起動。
conf.d/fastcgi.conf のようにして、httpd.confの外に出しても問題ありません。ただし、User / Groupの記述の後に読み込む必要があります。

