2011年6月4日土曜日

passenger での複数サブディレクトリ



インストール時のコメントを読んでいるとアパッチのドキュメントルートにrailsで作成したpublicディレクトリを設定する必要がある様なことを書いてあるので、複数のrailsを公開する場合、virtualhostしかないと思っていましたが、RailsBaseURI で対応出来るのですね。もう少し早くドキュメントを読めば良かった。。

複数プロジェクトで例
1.私の環境ではドキュメントルートは /var/www/html になっているので、/var/www/rails/storeとstore2を作成(http経由で見えないところに作成)

2.それぞれのプロジェクトのownerを apache:apache に変更。 rootでは動作しないようです。

3./var/www/rails/storeとstore2内のpublicを/var/www/html/rails/storeとstore2にシンボリックリンクを張る。(http経由で見えるところにpublicのみシンボリックリンクをはる)
cd /var/www/html/rails
ln -s /var/www/rails/store/public store
ln -s /var/www/rails/store2/public store2

3./etc/httpd/conf.d にrails.confをファイルを作り、中身を以下のようにする
#PassengerRuby...までがpassengerインストール時に指示された内容

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7
   PassengerRuby /usr/local/bin/ruby
   
#以下が追加した内容
 RailsBaseURI /rails/store
    <Directory /var/www/html/rails/store>
    AllowOverride all
    Options -Multiviews
   </Directory>


    RailsBaseURI /rails/store2
    <Directory /var/www/html/rails/store2>
    AllowOverride all
    Options -Multiviews
   </Directory>








--------------------------
結構時間がかかった





0 件のコメント:

コメントを投稿