複数アプリを動かす時のDocumentRootとRailsBaseURIの関係

感想おまちしてます!

Redmine0.8.4が動いているPassenger環境で、Redmine0.9.0へバージョンアップを考えていたのだけれど、
Apacheの設定になるhttpd.confが以下のように書かれていた。

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /var/www/public
RailsBaseURI /
</VirtualHost>

そして、/var/www/public直下にappとかconfとかRedmineの中身がおかれてしまっていて、複数のRailsを動かすことを考えてないよねーという印象。
現状のRedmineを止めずに複数Redmineを起動させる必要があったので、以下のようにしてみた。

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /var/www/public
RailsBaseURI /
RailsBaseURI /redmine0.9.0
</VirtualHost>

これで、/var/www/public/redmine0.9.0をおいてみたがRoutingError。RailsBaseURIの順番を逆にしても同じ。Rubyのスペシャリストに聞いてみたら、以下の方法で動くことが判明。

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /var/www/public
RailsBaseURI /redmine2
</VirtualHost>

「RailsBaseURI /」はなくても動くらしい。Redmine0.8.4を止めたら以下のようにしよう。

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /var/www
RailsBaseURI /redmine0.9.0
</VirtualHost>

Passengerで複数アプリを動かす方法が色々書かれていて迷った。