RVM と Phusion Passenger を使って複数の Ruby, Ruby on Rails アプリケーションを動かそう


この記事の所要時間: 317

1 つのサーバで複数バージョンの Rails 動かすにはどうしたらいいでしょうか?
この場合、メインで動かす mod_rails 環境に加えて Apache, nginx, Phusion Passenger でリバースプロキシを構成することになります。

現在インストールされている Ruby のバージョンの確認

Ruby 1.8.7 をインストールする

global gemset に Passenger をインストールする

Rails をインストールする

.rvmrc の作成

Apache のリバースプロキシ設定

httpd を再起動します。

Rails の細かい設定

config/setup_load_paths.rb というファイルを作成して小細工をします。

#config/setup_load_paths.rb
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    rvm_path     = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
    rvm_lib_path = File.join(rvm_path, 'lib')
    $LOAD_PATH.unshift rvm_lib_path
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    # RVM is unavailable at this point.
    raise "RVM ruby lib is currently unavailable."
  end
end

nginx のインストール & Passenger を standalone で起動

むむむ、エラー・・・。もう一回。

今度はうまく nginx がインストールされ、Passenger が standalone で起動されました。
ちなみに tips なのですが、Passenger を起動するときに -e production とすると production モードで起動することができます。

参考

  • tmaeda hiki – Passenger と RVM で複数 gemset でのアプリケーション運用
  • RVM: Ruby Version Manager – Passenger – Come on, ride the train, hey, ride it, woo woo…
  • Phusion Passenger & running multiple Ruby versions – Phusion Corporate Blog
  • 投稿者紹介

    株式会社ユニキャスト
    私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
    ”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

    人気の記事

    コメント

    1. […] RVM と Phusion Passenger を使って複数の Ruby, Ruby on Rails アプリケーションを動かそう | ユニキャストラボ […]

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    PAGE TOP