2006-02-05
Apache2 + fcgid + Ruby on Railsメモ
久々にしっかりとはまったので、メモを残しておきます。
やりたかったこと
Ruby on Railsをお試しでインストールして、アプリケーションをつくったのですが、
CGIだとやはりとてもとても遅いので、fastCGIで動かすことを決意。
つまり、Ruby on Railsが速く動くなるようになればよい。
はまった点
Gentooで、emerge mod_fastcgiを実行すると、Apache-1.3がインストールされてしまう。。
Apache-2のモジュール(/usr/lib/apache2/module)を確認してみると
明らかにfastcgiポイ、fcgid.soを見つける。
ただ、設定の仕方が全然分からない。。。。
適当にやっていると。
Application error
Rails application failed to start properly
全然だめじゃん。
ということで。以下が解決法。
インストール手順
RubyをfastCGIに対応させる。(fcgi)
ここは、RubyGemsで提供されているので、以下のコマンドで完了。
gem install fcgi --remote
apache2にfastCGIモジュールをインストールする。(mod_fcgid.so)
gentooなので、いつも通り
emerge mod_fcgid
なんか、「fastCGI」と「fcgid」はバイナリレベルで同じようなものって
書いてありました。よくわかりませんが。
ただし、設定は結構違うみたい。
apache2(/etc/apache2/modules.d/20_mod_fcgid.conf)に設定。
(ここがとても大事なポイント)
ここで設定すべき項目は、Railsの初期設定をapacheの設定にしなくてはいけないということ。
Railsがどのモード(DB利用:config/database.yml)を利用するかを指定する。
ひとまず、developmentで作成していたので。
以下の通り指定
DefaultInitEnv RAILS_ENV development
後、以下の設定も必須らしい。
IPCCommTimeout 40
IPCConnectTimeout 10
結局。/etc/apache2/modules.d/20_mod_fcgid.confはこうなっています。
<IfDefine FCGID>
<IfModule !mod_fcgid.c>
LoadModule fcgid_module modules/mod_fcgid.so
DefaultInitEnv RAILS_ENV development
IPCCommTimeout 40
IPCConnectTimeout 10
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
</IfDefine>
ROR/public/.htaccessの設定。(これはどこにでも書いてある)
fastcgiをfcgidに変更
# General Apache options
#AddHandler fastcgi-script .fcgi
AddHandler fcgid-script .fcgi
RewriteRuleを変更(CGI用からfastCGI用へ)
# RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
apache2起動時のパラメータを追加
起動時に"-D FCGID"を追加する。
/etc/conf.d/apache2に以下を設定。
#APACHE2_OPTS="-D SSL"
APACHE2_OPTS="-D FCGID"
apache2の再起動
そして実行。
/etc/init.d/apache2 restart
参考サイト
moroの日記http://d.hatena.ne.jp/moro/20060130/1138628101
ratio - rational - irrationalhttp://idm.s9.xrea.com/ratio/2005/10/18/000274.html
Bloggy Hellhttp://myles.eftos.id.au/blog/archives/27
Paul's Journalhttp://paul.querna.org/journal/articles/2006/01/01/using-mod_fcgid-for-ruby-on-rails-applications
たぶん適当なところが多いので、どなたかフォローしていただけたらたすかります。
- 10 http://d.hatena.ne.jp/keyworddiary/Ruby
- 5 http://d.hatena.ne.jp/keyword/Ruby on Rails
- 4 http://1470.net/bm/asininfo/4106101416
- 4 http://d.hatena.ne.jp/asin/4106101416
- 4 http://d.hatena.ne.jp/keyword/Rails
- 3 http://d.hatena.ne.jp/keyword/Ruby
- 3 http://feedbringer.net/feed
- 3 http://idm.s9.xrea.com/ratio/2005/10/18/000274.html
- 3 http://search.goo.ne.jp/web.jsp?UI=web&TAB=web&from=query&OCR=0&QGR=1&JP=1&QGA=1&CK=1&IME=1&NKW=1&MT=小池ミモザ&DC=10&ET=&web.x=0&web.y=0
- 2 http://d.hatena.ne.jp/



