gateway.cgi を使って cgi 環境で rails を実用的に動かす
CGIでRailsをまともに動かすの内容を試してみた。対象は Redmine。
とりあえず、fcgi と ruby-fcgi をインストールする。
$ cd fcgi-2.4.0 $ ./configure --prefix=$HOME/local $ make && make install $ gem install fcgi -- --with-fcgi-include=$HOME/local/include
後は、記事にあるように public/gateway.cgi と script/listener、script/tracker をコピーして、一部修正。
それから、サイトのトップで動作させるわけじゃないので、mongrel での --prefix 相当の動作をさせるために、次の修正をした。
config/environments/production.rb:
ActionController::AbstractRequest.relative_url_root = "/redmine"
劇的に、というほどでもないけど、Redmine の本家サイトに見劣りしない程度のレスポンスにはなったようだ。
デフォルトでは listener が最大 3 プロセスで、90 秒の idle で終了、となっている。これが必要になるのはリソースが制限されてる環境だろうから、本格的に動かすのなら、このバランス調整がポイントになりそう。