使用nginx,rvm和passenger配置多个Rails项目?

时间:2013-04-22 16:21:40

标签: ruby-on-rails ruby nginx rvm passenger

我正在使用nginx,rvm和passenger为Rails项目(即project1)运行Web服务器。该项目具有为其定义的特定gemset。我现在需要运行第二个项目(即project2),它使用一组不同的gem(并定义了不同的gemset)。我怎么能做到这一点?

这是我的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让我错过了宝石错误。

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

请注意passenger_root如何指向project1中的乘客宝石。

关于如何运行这两个项目的任何指示,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:-1)

rvm documentation中有一节与Passenger / nginx集成。解决方案在那里,并要求您添加新文件config/setup_load_paths.rb。有关该文件的详细信息,请参阅文档。

顺便说一句,如果您使用的是Rails3,那么捆绑器是管理特定于宝石的特定宝石的更好选择。