Passenger(mod_rails)をバーチャルホストで動かす。
2009年06月11日(木)09:07|天方
こんにちは。天方です。
最近、Apache上でRailsを動かすPassenger(mod_rails)を導入してみました。
インストールはいたって簡単で、 http://www.modrails.com/install.html でも説明されているとおりコマンドラインで
gem install passenger
passenger-install-apache2-module
とインストールして、あとはインストール時にでる指示に従ってhttpd.confに
LoadModule passenger_module \
/usr/lib/ruby/gems/1.8/gems/ \
passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
PassengerRuby /usr/bin/ruby
のような設定を追加するだけで完了です。
あとは、
<VirtualHost *:80>
ServerName www.yourhost.com
# <-- RailsのP publicフォルダへのパスを指定
DocumentRoot /somewhere/public
</VirtualHost>
のような設定を書くだけで、Railsが使えるわけです。
しかしこれだけだと一部で問題が…
上記の設定だと、Railsを動かしたくないバーチャルホストの環境でも mod_railsが動いてしまいます。
そこで、httpd.confの設定を
LoadModule passenger_module \
/usr/lib/ruby/gems/1.8/gems/ \
passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
PassengerRuby /usr/bin/ruby
PassengerEnabled off
のようにして、デフォルトでPassengerをOFFにしたうえで、Passengerを使いたいバーチャルホストでだけ
<VirtualHost *:80>
ServerName www.yourhost.com
# <-- RailsのP publicフォルダへのパスを指定
DocumentRoot /somewhere/public
PassengerEnabled on
</VirtualHost>
とすれば、いいようです。
機会があれば、Passengerの使用感等をご報告したいと思います。