Apache2 + FastCGI環境を構築する

構築メモ.ターゲットはFC6 or FC7.以下を参考にしました.

pools.jp | Apache2.2+fastcgiで Ruby on Rails

##ダウンロードとインストール ###FastCGI Developer’s Kit/mod_fastcgiのダウンロード

###展開とインストール

  • 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
  • Apacheの設定変更
    • conf.d/rails.conf
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
  • Railsの.htaccessの変更

先ほどAliasを切ったパスへ変更して,dispatch.cgiをdispatch.fcgiに変更

RewriteBase /railsapp

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  • log/tmpのattribute変更
$ chmod -R a+w log tmp

動作確認して,これでひとまず終わり.割と簡単だったかな.

 
comments powered by Disqus