7

主に Ruby 1.8.7 を実行するサーバーを使用していますが、現在は 1.9.3 を必要とする Rails 3.2 アプリを使用しています。仮想サーバーごとに複数の Ruby を実行する機能をサポートする Passenger 4 をインストールしました。

ただし、特定の Ruby を割り当てることはできますが、アプリケーションはその Ruby の gemset にアクセスできないようです。そのため、アプリケーションが現在提供するエラーページで確認されているように、1.9.3 Ruby で構成された仮想サーバーがあります。

Ruby interpreter command
/home/aaron/.rvm/rubies/ruby-1.9.3-p0/bin/ruby

しかし、GEM_HOME パラメーターは別の話です。

GEM_HOME = /home/aaron/.rvm/gems/ruby-1.8.7-p352

Passenger 4 の構成ディレクティブを調べると、別の gemset を指定する方法がわかりません。私は何かを見逃しているのでしょうか、それともこれはプライムタイムの準備ができていないだけですか?

4

2 に答える 2

7

Tombart指摘したように:コンパイル済みの Passenger モジュール(私の場合は Apache2 用) を使用すると、システムが起動して実行されます。

ただし、RVMを使用している場合、「ラッパー ディレクトリ」を使用して正しい RVM ruby​​ バージョンと gemetを選択する必要があるという事実に遭遇しました。

PassengerRuby /home/of_your_ruby_user/.rvm/wrappers/ruby-x.y.z-p123@gemset/ruby

このようにして、Passenger はこのディレクトリ ( ) に関連する正しい gemset を見つける方法を認識します../../gems/ruby-x.y.z-p123@gemset/gems。そうしないと、同じ Ruby バージョンで複数のアプリを実行したい場合、Passenger は「標準の Ruby Gemset」を使用します。これはNginxでも似ているとしか思えません。

于 2013-10-23T07:54:52.050 に答える