文書の過去の版を表示しています。
目次
passenger
Phusion PassengerはRackベースのRubyのWebアプリケーションの実行環境。Apacheまたはnginxとともに動作する。
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
rvm + apache2 で動作させる
rvmでインストールしたruby1.8.7で動かす
$ rvm use 1.8.7 $ gem install passenger $ rvmsudo passenger-install-apache2-module
設定ファイルを作成して読み込む
LoadModule passenger_module /Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/gems/passenger-3.0.9/ext/apache2/mod_passenger.so PassengerRoot /Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/gems/passenger-3.0.9 PassengerRuby /Users/nullpon/.rvm/wrappers/ruby-1.8.7-p352@redmine/ruby RailsBaseURI /redmine <Directory /var/www/redmine-1.2.1/publuc> AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off </Directory>