passenger

■ passengerとは
Apacheのモジュールで動くRailsのWebコンテナです。
個別にデーモンを起動することなく、Apacheを起動するとpassengerも起動します。

■ インストール

# gemでインストール
[root@example ~]# gem install passenger

# Apacheのビルドとインストール
# 足りないファイルがない場合は表示されるので
# インストールする。
# 処理が完了するとhttpd.confに記述する設定が
# 表示されるので、メモ。
[root@example ~]# passenger-install-apache2-module

■ 設定
Apacheの設定ファイルを編集する。
※ passengerで起動するRailsプロジェクトは"sampleproject"とします。
※ 今回の設定は、passenger-2.2.3で起動するための設定です。

設定ファイル:/etc/httpd/conf/httpd.conf

# 追加
# "Apacheのビルドとインストール"の処理完了時に表示された
# 設定を転記。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.3/ext/apache2/
mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.3
PassengerRuby /usr/local/bin/ruby

# 追加
# example.comの80番ポートへのアクセスをRailsプロジェクトに設定
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/sampleproject/public
# Railsを起動する環境(指定しなければproduct)
RailsEnv development
</VirtualHost>

Railsの起動する環境の設定ファイルに以下の記述を追記。

設定ファイル:/var/www/sampleproject/config/environments/development.rb

# 追記
config.action_controller.relative_url_root='/sampleproject'

■ 起動
Apacheを再起動すれば、Railsプロジェクトにアクセスできるようになります。

# Apacheの再起動
[root@example ~]# service httpd restart

■ passengerの再起動
2種類の方法があります。
Apacheを再起動
・$RAILS_ROOT/tmp/restart.txtという空ファイルを作る。
作成した後の最初のリクエスト時に再起動される。
また、restart.txtは再起動後に削除される。