passengerを複数のrubyのバージョンで動かす
rbenvでrubyのバージョン管理をしていて、色々なバージョンでpassengerを動かすとなると、なかなか手のこんだことをしないといけなかったが、passenger4以上からvirtualhostの設定で簡単に対応するrubyのバージョンを切り替えられるようになった。
passengerは既にインストールされてる状態である。
環境
・apache
・rbenv
・passenger
passengerを4以上にアップグレード
gemからpassengerをアップデート
Gem update passenger
httpd.confに記述されているpassengerの設定の変更を忘れずに行う。
virtualhostでPassengerRubyを設定
下記コマンドで設定値を調べる
passenger-config about ruby-command
↓こんな感じの内容が出力されるので、使っているミドルウェアの設定値をコピーする。
To use in Apache: PassengerRuby /home/hoge/.rbenv/versions/2.1.2/bin/ruby To use in Nginx : passenger_ruby /home/hoge/.rbenv/versions/2.1.2/bin/ruby To use with Standalone: /home/hoge/.rbenv/versions/2.1.2/bin/ruby /home/hoge/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/passenger-4.0.53/bin/passenger start
virtualhostに使いたいrubyのバージョンを指定する。
PassengerRuby /home/hogehoge/.rbenv/versions/2.1.2/bin/ruby
apacheの再起動
apachectl graceful
これでrubyのバージョンに応じてどのrubyのpassengerを使うか指定できるようになる。
参考記事
http://y-ken.hatenablog.com/entry/how-to-use-multiple-ruby-version-in-one-apache-passenger