1

nginx、rvm、およびパッセンジャーを使用して、Rails プロジェクト (つまり、project1) の Web サーバーを実行しています。このプロジェクトには、特定の gemset が定義されています。ここで、別の gem セットを使用する (別の gemset が定義されている) 2 番目のプロジェクト (つまり、project2) を実行する必要があります。どうすればそれを達成できますか?

これは、nginx の構成ファイルがどのように見えるかです。

http {
  passenger_root /var/www/project1/vendor/cache/ruby/1.9.1/gems/passenger-3.0.
19;
  passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p320@global/ruby;

  # ...

  server {                                                    
    listen        80;                                                     
    server_name   project1.example.com;           

    root              /var/www/project1/public;             
    passenger_enabled on;
    rails_env         production;      

    # ...                       

  }      

    server {                                                    
    listen        80;                                                     
    server_name   project2.example.com;           

    root              /var/www/project2/public;             
    passenger_enabled on;
    rails_env         production;      

    # ...                       

  }              

  # ...
}

project1 は期待どおりに動作します。ただし、project2 で gem が見つからないというエラーが表示されます。

Could not find i18n-0.6.4 in any of the sources (Bundler::GemNotFound)

Passenger_root が project1 内のパッセンジャー gem をどのように指しているかに注意してください。

両方のプロジェクトを実行する方法についての指針をいただければ幸いです。ありがとうございました。

4

1 に答える 1

-2

rvmのドキュメントには、Passenger/nginx との統合に関するセクションがあります。そこに解決策があり、新しいファイルを追加する必要がありますconfig/setup_load_paths.rb。そのファイルの詳細については、ドキュメントを参照してください。

ところで、Rails3 を使用している場合、アプリケーション固有の gem を管理するには、gemset よりもバンドラーを使用する方が適しています。

于 2013-04-22T17:19:20.310 に答える