ruby:passenger
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| ruby:passenger [2011/03/28 06:40] – 外部編集 127.0.0.1 | ruby:passenger [2011/09/19 05:16] (現在) – [passengerのinstall] nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== passenger ====== | ====== passenger ====== | ||
| - | ApacheにrailsアプリをそのままデプロイできるようにするApacheのモジュール、またの名をmod_rails | + | [[http:// |
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| - | ===== passengerのinstall | + | ===== Apacheモジュール版 |
| - | MacOSXにpassenger 1.0.5のインストールする。やり方はUNIX系OSならどれでも同じ | + | |
| - | $ sudo gem install | + | ==== passengerのinstall ==== |
| + | [[/ | ||
| - | もし[[/macosx# | + | $ gem install passenger |
| + | |||
| + | [[/MacPorts]]でインストールしたApacheに対してインストールする場合は、先に環境変数APXS2とPATHを設定する。 | ||
| $ export APXS2=/ | $ export APXS2=/ | ||
| $ export PATH=/ | $ export PATH=/ | ||
| - | passenderのモジュールを作成 | + | passenderの動的共有オブジェクトを作成 |
| $ sudo passenger-install-apache2-module | $ sudo passenger-install-apache2-module | ||
| - | モジュールのロード設定、httpd.confに記述(ロード設定は上記のコマンドのラストに出てくるのでコピペする!!以下のをコピペしても動かないぞ) | + | OSやディストリビューションの流儀に合わせてApacheの設定ファイルを作成する。 |
| - | LoadModule passenger_module /opt/local/lib/ruby/ | + | LoadModule passenger_module /Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/ |
| - | | + | |
| - | | + | |
| - | ===== デプロイ | + | ==== デプロイ ==== |
| ホスト全体をRailsアプリとする場合は、DocumentRoot に Rails アプリの public ディレクトリを指定する。 | ホスト全体をRailsアプリとする場合は、DocumentRoot に Rails アプリの public ディレクトリを指定する。 | ||
| - | 特定のパス、例えば/hogehoge以下にRailsアプリをデプロイする場合は、httpd.confに以下の設定をして | + | < |
| + | DocumentRoot | ||
| - | | + | < |
| + | | ||
| + | | ||
| + | </ | ||
| + | </code> | ||
| - | ドキュメントルートの下に | + | 特定のパス、例えば /hogehoge 以下にデプロイする場合は、 |
| - | 例、/var 以下にインストールした redmine 0.7.1 を /redmineにデプロイ | + | < |
| + | DocumentRoot | ||
| - | LoadModule passenger_module / | + | RailsBaseURI /hogehoge |
| - | RailsSpawnServer / | + | |
| - | RailsRuby / | + | |
| - | | + | |
| - | $ cd /opt/local/apache2/htdoc/ | + | < |
| - | $ sudo ln -s /var/redmine-0.7.1/ | + | AllowOverride all |
| + | | ||
| + | </Directory> | ||
| + | </code> | ||
| - | ===== update | + | RailsBaseURI のパスに合わせてドキュメントルート以下に Rails の public のシンボリックリンクを作成する。 |
| - | 2.0.3にアップデート | + | |
| + | $ cd / | ||
| + | $ ln -s / | ||
| + | |||
| + | ==== 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 / | LoadModule passenger_module / | ||
| PassengerRoot / | PassengerRoot / | ||
| PassengerRuby / | PassengerRuby / | ||
| - | | + | |
| Apache2を再起動 | Apache2を再起動 | ||
| + | |||
| sudo / | sudo / | ||
| - | ===== Railsアプリの再読み込み | + | ==== Railsアプリの再読み込み ==== |
| Railsアプリのファイルを更新しただけでは、変更が反映されない(RAILS_ENV=productionではファイルの変更を反映しないようになっている)。tmpディレクトリにrestart.txtというファイルを作成するとpassengerが再起動され、変更が反映される。 | Railsアプリのファイルを更新しただけでは、変更が反映されない(RAILS_ENV=productionではファイルの変更を反映しないようになっている)。tmpディレクトリにrestart.txtというファイルを作成するとpassengerが再起動され、変更が反映される。 | ||
| $ cd / | $ cd / | ||
| $ 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=/ | ||
| + | DAEMON=/ | ||
| + | |||
| + | start(){ | ||
| + | $DAEMON | ||
| + | } | ||
| + | |||
| + | stop(){ | ||
| + | $DAEMON -s stop | ||
| + | } | ||
| + | |||
| + | case " | ||
| + | start) | ||
| + | start | ||
| + | ;; | ||
| + | stop) | ||
| + | stop | ||
| + | ;; | ||
| + | restart) | ||
| + | stop | ||
| + | sleep 1 | ||
| + | start | ||
| + | ;; | ||
| + | status) | ||
| + | status_of_proc -p $PID $DAEMON nginx && exit 0 || exit $! | ||
| + | ;; | ||
| + | *) | ||
| + | echo " | ||
| + | esac | ||
| + | |||
| + | exit 0 | ||
| + | </ | ||
| + | |||
| + | ===== Standalone版 ===== | ||
| + | standalone版は開発用のWEBrickの代わりとして使える。また、redmine等のRailsアプリをサーバに設置せずにローカルで使用する場合に便利 | ||
| + | |||
| + | Railsアプリのディレクトリで以下のコマンドを実行すると起動する。初回のみnginxがダウンロード、ビルドされる。 | ||
| + | |||
| + | $ passenger start | ||
| + | |||
| + | 使い方はscript/ | ||
| + | |||
| + | dオプションでデーモン起動する。eで環境、pでポートを指定 | ||
| + | |||
| + | $ passenger start -e production -p 3001 -d | ||
| + | | ||
| + | |||
| + | ===== rvm + apache2 で動作させる ===== | ||
| + | rvmでインストールしたruby1.8.7で動かす | ||
| + | < | ||
| + | $ rvm use 1.8.7 | ||
| + | $ gem install passenger | ||
| + | $ rvmsudo passenger-install-apache2-module | ||
| + | </ | ||
| + | |||
| + | 設定ファイルを作成して読み込む | ||
| + | < | ||
| + | LoadModule passenger_module / | ||
| + | PassengerRoot / | ||
| + | PassengerRuby / | ||
| + | |||
| + | RailsBaseURI /redmine | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
ruby/passenger.1301294414.txt.gz · 最終更新: (外部編集)