やかんブログ

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の使用感等をご報告したいと思います。

この記事に関するお問い合わせはこちら

ページの先頭へ