2013-04-22 3 views
1

Я использую nginx, rvm и пассажира для запуска веб-сервера для проекта Rails (т. Е. Project1). Для этого проекта определен конкретный gemset, определенный для него. Теперь мне нужно запустить второй проект (т. Е. Project2), который использует другой набор драгоценных камней (и имеет определенный определенный gemset). Как я могу это сделать?Настройка нескольких проектов Rails с nginx, rvm и пассажиром?

Это то, что мой файл конфигурации Nginx выглядит следующим образом:

http { 
    passenger_root /var/www/project1/vendor/cache/ruby/1.9.1/gems/passenger-3.0. 
19; 
    passenger_ruby /usr/local/rvm/wrappers/[email protected]/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) 

Обратите внимание, что пассажир_роат указывает на жемчужину пассажира в проекте1.

Любые указатели на то, как я могу управлять обоими проектами, были бы весьма признательны. Спасибо.

ответ

-1

В разделе rvm documentation имеется раздел по интеграции с пассажиром/nginx. Решение находится там и требует, чтобы вы добавили новый файл config/setup_load_paths.rb. Подробности в этом файле можно найти в документации.

BTW, если вы используете Rails3, поставщик является лучшим выбором для управления конкретными приложениями, чем gemsets.

+0

Thanks Jeff. Я использую Rails 3 с bundler и Gemfiles. Как это изменит решение? –

+0

Если вы свяжете свои драгоценные камни с поставщиком/пакетом с помощью 'bundle install --path vendor/bundle', то они по своей природе специфичны для проекта –

+0

>« ..bundler - лучший выбор для управления конкретными приложениями, чем gemsets ». Я бы сказал, что лучший вариант - использовать оба. gemsets выделяют все на основе каждого проекта, тогда как bundler управляет версиями драгоценных камней в рамках данного проекта (в gemset для проекта). –

Смежные вопросы