ユーザ用ツール

サイト用ツール


ruby:passenger

文書の過去の版を表示しています。


passenger

ApacheにrailsアプリをそのままデプロイできるようにするApacheのモジュール、またの名をmod_rails

Apacheモジュール版

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

gemをupdateして、モジュールを再ビルド。Apacheの設定ファイルのパスを修正する

$ 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

Standalone版

Railsアプリのディレクトリで

$ passenger start

初回のみnginxがダウンロード、ビルドされる。

使い方はscript/serverと同じ

$ passenger start -e production -p 3001
ruby/passenger.1316335023.txt.gz · 最終更新: 2011/09/18 08:37 by nullpon