Я использую 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.
Любые указатели на то, как я могу управлять обоими проектами, были бы весьма признательны. Спасибо.
Thanks Jeff. Я использую Rails 3 с bundler и Gemfiles. Как это изменит решение? –
Если вы свяжете свои драгоценные камни с поставщиком/пакетом с помощью 'bundle install --path vendor/bundle', то они по своей природе специфичны для проекта –
>« ..bundler - лучший выбор для управления конкретными приложениями, чем gemsets ». Я бы сказал, что лучший вариант - использовать оба. gemsets выделяют все на основе каждого проекта, тогда как bundler управляет версиями драгоценных камней в рамках данного проекта (в gemset для проекта). –