Apache2 + FastCGI環境を構築する
構築メモ.ターゲットはFC6 or FC7.以下を参考にしました.
pools.jp | Apache2.2+fastcgiで Ruby on Rails
ダウンロードとインストール
展開とインストール
- FastCGI Developer's Kit
$ tar zxvf fcgi-2.4.0.tar.gz $ cd fcgi-2.4.0 $ ./configure $ make $ sudo make install $ sudo vim /etc/ld.so.conf.d/local-lib.conf
local-lib.confの内容は
/usr/local/lib
- gemでfcgiをインストール
$ sudo gem install fcgi
- mod_fastcgi
$ tar zxvf mod_fastcgi-2.4.2.tar.gz
$ cd mod_fastcgi-2.4.2
Apache 2.2用パッチをあてる
$ wget http://kokogiko.net/fastcgi-apache22-patch $ patch -p1 < fastcgi-apache22-patch
httpd/buildの場所を探し出し,Makefileを書き換える
$ find / -name build | grep 'httpd' $ cp Makefile.AP2 Makefile $ vim Makefile $ make $ sudo make install
Makefileの変更点は
top_dir= /usr/lib/httpd
Alias /railsapp "/home/hoge/public_html/railsapp/public" <Directory "/home/hoge/public_html/railsapp/public"> Options ExecCGI FollowSymLinks AllowOverride all Allow from all Order allow,deny </Directory>
-
- conf.d/fastcgi.conf
LoadModule fastcgi_module modules/mod_fastcgi.so FastCgiConfig -idle-timeout 30 -maxClassProcesses 1 -initial-env RAILS_ENV=development -startDelay 30 FastCgiIpcDir /var/run/fastcgi AddHandler fastcgi-script .fcgi
-
- conf/httpd.conf
モジュールロードのタイミングを変更する(らしい).
Include conf.d/*.conf
を以下の後へ移動
User apache Group apache
先ほどAliasを切ったパスへ変更して,dispatch.cgiをdispatch.fcgiに変更
RewriteBase /railsapp RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
- log/tmpのattribute変更
$ chmod -R a+w log tmp
動作確認して,これでひとまず終わり.割と簡単だったかな.