ユーザ用ツール

サイト用ツール


ruby:passenger

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
ruby:passenger [2011/03/28 06:40] – 外部編集 127.0.0.1ruby:passenger [2011/09/19 05:16] (現在) – [passengerのinstall] nullpon
行 1: 行 1:
 ====== passenger ====== ====== passenger ======
-ApacheにrailsアプリをそのままデプロイできるようにするApacheのモジュール、またの名をmod_rails+[[http://www.modrails.com/|Phusion Passenger]]はRackベースのRubyのWebアプリケーション実行環境。Apacheたはnginxととも動作する。 
   * [[http://www.modrails.com/install.html|公式インストールガイド]]   * [[http://www.modrails.com/install.html|公式インストールガイド]]
   * [[http://www.modrails.com/documentation.html|公式ドキュメント]]   * [[http://www.modrails.com/documentation.html|公式ドキュメント]]
  
-===== passengerのinstall ===== +===== Apacheモジュール版 =====
-MacOSXにpassenger 1.0.5のインストールする。やり方はUNIX系OSならどれでも同じ+
  
-  $ sudo gem install passenger+==== passengerのinstall ==== 
 +[[/RubyGems]]でインストール
  
-もし[[/macosx#macports]]でインストールしたApacheに対してインストールする場合は先に環境変数APXS2とPATHを設定+  $ gem install passenger 
 + 
 +[[/MacPorts]]でインストールしたApacheに対してインストールする場合は先に環境変数APXS2とPATHを設定する。
  
   $ export APXS2=/opt/local/apache2/bin/apxs   $ export APXS2=/opt/local/apache2/bin/apxs
   $ export PATH=/opt/local/apache2/bin:$PATH   $ export PATH=/opt/local/apache2/bin:$PATH
  
-passenderのュールを作成+passenderの動的共有オブェクトを作成
  
   $ sudo passenger-install-apache2-module   $ sudo passenger-install-apache2-module
  
-モジュールのロード設定、httpd.confに記述(ロード設定は上記のコマラストくるでコピペする!!以下のをコピペしても動かないぞ)+OSやディストリビューションの流儀合わせApache設定ファイルを作成する
  
-  LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so +  LoadModule passenger_module /Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/gems/passenger-3.0.9/ext/apache2/mod_passenger.so 
-  RailsSpawnServer /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server +  PassengerRoot /Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/gems/passenger-3.0.9 
-  RailsRuby /opt/local/bin/ruby+  PassengerRuby /Users/nullpon/.rvm/wrappers/ruby-1.8.7-p352@redmine/ruby
  
-===== デプロイ =====+==== デプロイ ====
  
 ホスト全体をRailsアプリとする場合は、DocumentRoot に Rails アプリの public ディレクトリを指定する。 ホスト全体をRailsアプリとする場合は、DocumentRoot に Rails アプリの public ディレクトリを指定する。
  
-特定のパス、例えば/hogehoge以下にRailsアプリをデプロイする場合は、httpd.confに以下の設定をして+<code> 
 +DocumentRoot /var/www/paulownia.jp/redmine/publuc
  
-  RailsBaseURI /hogehoge+<Directory /var/www/paulownia.jp/redmine/publuc> 
 +   AllowOverride all 
 +   Options -MultiViews 
 +</Directory> 
 +</code>
  
-ドキュメントルートの下に hogehoge という名前で、railsのpublicィレクトリのシンボリックリンクを作成する。セキュリティのためRailsアプリ本体はhtdocsの外に出しておく。+特定パス、例えば /hogehoge 以下にデプロイする場合は
  
-例、/var 以下にインストールした redmine 0.7.1 を /redmineにデプロイ+<code> 
 +DocumentRoot /var/www/paulownia.jp/htdocs
  
-  LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so +RailsBaseURI /hogehoge
-  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+<Directory /var/www/paulownia.jp/redmine/publuc> 
-  $ sudo ln -/var/redmine-0.7.1/public redmine+   AllowOverride all 
 +   Options -MultiViews 
 +</Directory> 
 +</code>
  
-===== update ===== +RailsBaseURI のパスに合わせてドキュメントルート以下に Rails の public のシンボリックリンクを作成する。 
-2.0.3にアップデ+ 
 +  $ cd /var/www/paulownia.jp/htdocs 
 +  $ ln -s /var/www/paulownia.jp/redmine/publuc hogehoge 
 + 
 +==== update ==== 
 +gemをupdateして、モジュルを再ビルド。Apacheの設定ファイルのパスを修正する
  
   $ sudo gem update passenger   $ sudo gem update passenger
行 52: 行 66:
   $ sudo passenger-install-apache2-module   $ 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   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   PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.3
   PassengerRuby /opt/local/bin/ruby   PassengerRuby /opt/local/bin/ruby
-  RailsBaseURI /redmine +  
 Apache2を再起動 Apache2を再起動
 +
   sudo /opt/local/apache2/bin/apachectl restart   sudo /opt/local/apache2/bin/apachectl restart
  
-===== Railsアプリの再読み込み =====+==== Railsアプリの再読み込み ====
 Railsアプリのファイルを更新しただけでは、変更が反映されない(RAILS_ENV=productionではファイルの変更を反映しないようになっている)。tmpディレクトリにrestart.txtというファイルを作成するとpassengerが再起動され、変更が反映される。 Railsアプリのファイルを更新しただけでは、変更が反映されない(RAILS_ENV=productionではファイルの変更を反映しないようになっている)。tmpディレクトリにrestart.txtというファイルを作成するとpassengerが再起動され、変更が反映される。
  
   $ cd /var/redmine-1.0.4/tmp   $ cd /var/redmine-1.0.4/tmp
   $ touch restart.txt   $ touch restart.txt
 +
 +===== nginx版 =====
 +nginxには動的共有オブジェクトの仕組みが無いので、最初からpassengerを組み込んだ形でnginx自体をビルドする。
 +
 +passengerをインストール
 +
 +  $ gem install passenger 
 +
 +passenderのモジュールを組み込んだnginxをビルド。
 +
 +  $ sudo passenger-install-nginx-module
 +
 +デフォルトでは /opt/nginx にインストールされる。起動スクリプトが無いので適当に自分で作成する。
 +
 +
 +
 +<code bash>
 +#!/bin/bash
 +
 +PID=/var/run/nginx.pid
 +DAEMON=/opt/nginx/sbin/nginx
 +
 +start(){
 +  $DAEMON
 +}
 +
 +stop(){
 +  $DAEMON -s stop
 +}
 +
 +case "$1" in
 +  start)
 +    start
 +    ;;
 +  stop)
 +    stop
 +    ;;
 +  restart)
 +    stop
 +    sleep 1
 +    start
 +    ;;
 +  status)
 +    status_of_proc -p $PID $DAEMON nginx && exit 0 || exit $!
 +    ;; 
 +  *)
 +    echo "Usage: $0 {start|stop|restart|status}"
 +esac
 +
 +exit 0
 +</code>
 +
 +===== Standalone版 =====
 +standalone版は開発用のWEBrickの代わりとして使える。また、redmine等のRailsアプリをサーバに設置せずにローカルで使用する場合に便利
 +
 +Railsアプリのディレクトリで以下のコマンドを実行すると起動する。初回のみnginxがダウンロード、ビルドされる。
 +
 +  $ passenger start
 +
 +使い方はscript/serverとほぼ同じ
 +
 +dオプションでデーモン起動する。eで環境、pでポートを指定
 +
 +  $ passenger start -e production -p 3001 -d
 +  
 +
 +===== rvm + apache2 で動作させる =====
 +rvmでインストールしたruby1.8.7で動かす
 +<code>
 +$ rvm use 1.8.7
 +$ gem install passenger 
 +$ rvmsudo passenger-install-apache2-module
 +</code>
 +
 +設定ファイルを作成して読み込む
 +<code>
 +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>
 +</code>
  
  
ruby/passenger.1301294414.txt.gz · 最終更新: 2011/09/18 08:37 (外部編集)