kame's engineer note

技術関連のメモをブログに記録していく

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