動いた!

一昨日からなやんでいた、サブディレクトリ配下でrailsアプリを動かす(1サーバで複数のrailsアプリを動かす)方法ですが、ようやく動きました。

コメントをくださったid:osakanasさん、どうもありがとうございました。

教えていただいたhttp://blog.lighttpd.net/articles/2005/11/23/lighttpd-1-4-8-and-multiple-rails-appsを見ながらやってみました。心残りなのはstrip-request-uriを使ったlighttpd側の設定ではうまくいかず、railsアプリ側での対応となってしまったこと。もうちょっと調べる余地がありそうです。

とりあえずこのへんのテーマでRails勉強会のセッションに立候補してみましたので、興味があるかたはそちらもよろしくお願いします。

このへんはあとでちゃんとまとめまたいと思いますが、取り急ぎ設定例をば。
lighttpd-1.4.8での設定です。

[/etc/lighttpd/lighttpd.conf(抜粋)]
#server.modules += ("mod_fastcgi", "mod_rewrite", "mod_alias" )

alias.url = ( "/saihu" => "/var/webapp/saihu/current/public" )
$HTTP["url"] =~ "^/saihu/" { server.error-handler-404 = "/saihu/dispatch.fcgi" }

fastcgi.server = ( "/saihu/dispatch.fcgi" =>
  ((  "host" => "192.168.10.2" ,
      "port" => 7000 ,
  )))

で、rails側の対応

[config/environments/production.rb]
# work under http://example.com/saihu
ActionController::AbstractRequest.relative_url_root = "/saihu" 

ということで、サーバからは "/saihu/controller/action"というURIが渡されるままにして、rails側でrootからの相対パスを指定しています。てかrelative_url_rootってあったんですね。lightyのblogを見て初めて知りました。(汗