文書の過去の版を表示しています。
passenger
ApacheにrailsアプリをそのままデプロイできるようにするApacheのモジュール、またの名をmod_rails
passengerのinstall
MacOSXにpassenger 1.0.5のインストールする。やり方はUNIX系OSならどれでも同じ
$ sudo gem install passenger
もしmacportsでインストールしたApacheに対してインストールする場合は先に環境変数APXS2とPATHを設定
$ export APXS2=/opt/local/apache2/bin/apxs $ export PATH=/opt/local/apache2/bin:$PATH
passenderのモジュールを作成
$ sudo passenger-install-apache2-module
モジュールのロード設定、httpd.confに記述(ロード設定は上記のコマンドのラストに出てくるのでコピペする!!以下のをコピペしても動かないぞ)
LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so RailsSpawnServer /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server RailsRuby /opt/local/bin/ruby
デプロイ
ホスト全体をRailsアプリとする場合は、DocumentRoot に Rails アプリの public ディレクトリを指定する。
特定のパス、例えば/hogehoge以下にRailsアプリをデプロイする場合は、httpd.confに以下の設定をして
RailsBaseURI /hogehoge
ドキュメントルートの下に hogehoge という名前で、railsのpublicディレクトリのシンボリックリンクを作成する。セキュリティのため、Railsアプリ本体はhtdocsの外に出しておく。
例、/var 以下にインストールした redmine 0.7.1 を /redmineにデプロイ
LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so RailsSpawnServer /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server RailsRuby /opt/local/bin/ruby RailsBaseURI /redmine
$ cd /opt/local/apache2/htdoc/ $ sudo ln -s /var/redmine-0.7.1/public redmine
update
2.0.3にアップデート
$ sudo gem update passenger $ export APXS2=/opt/local/apache2/bin/apxs $ export PATH=/opt/local/apache2/bin:$PATH $ sudo passenger-install-apache2-module
httpd.confを修正(設定は環境依存なので各自の環境に合わせて!)
LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /opt/local/bin/ruby RailsBaseURI /redmine
Apache2を再起動
sudo /opt/local/apache2/bin/apachectl restart
Railsアプリの再読み込み
Railsアプリのファイルを更新しただけでは、変更が反映されない(RAILS_ENV=productionではファイルの変更を反映しないようになっている)。tmpディレクトリにrestart.txtというファイルを作成するとpassengerが再起動され、変更が反映される。
$ cd /var/redmine-1.0.4/tmp $ touch restart.txt