Использование passenger для запуска как Rails 3.0, так и Rails 3.1 приложения (с использованием разных наборов гемов rvm) - PullRequest
3 голосов
/ 09 июня 2011

Я просто следовал этим указаниям для установки нового набора гемов rvm и установки rails-3.1.0.rc2 на мою локальную машину. Сначала я получал сообщение об ошибке Пассажира о том, что гем rake-0.9.2 не может быть загружен, но обнаружил, что this напоминает мне запустить "$ passenger-install-apache2-module". Это установило нормально, побудило меня добавить следующее в мой конфигурационный файл Apache (/etc/apache2/httpd.conf):

LoadModule passenger_module /Users/robs/.rvm/gems/ruby-1.9.2-p180@rails-3.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /Users/robs/.rvm/gems/ruby-1.9.2-p180@rails-3.1/gems/passenger-3.0.7
PassengerRuby /Users/robs/.rvm/wrappers/ruby-1.9.2-p180@rails-3.1/ruby

Однако там уже есть три строки из другого набора:

LoadModule passenger_module /Users/robs/.rvm/gems/ruby-1.9.2-p180@rails-3.0/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /Users/robs/.rvm/gems/ruby-1.9.2-p180@rails-3.0/gems/passenger-3.0.7
PassengerRuby /Users/robs/.rvm/wrappers/ruby-1.9.2-p180@rails-3.0/ruby

Если я оставлю там оба набора строк без комментариев (набор драгоценностей @ rails-3.1 последний) и перезапущу Apache, мое приложение Rails 3.0 не запустится. Мне нужно закомментировать строки набора гемов rails 3.1, перезапустить Apache и запустить «$ rvm use ruby-1.9.2-p180@rails.3.0». Если я хочу запустить приложение Rails 3.1, я должен сделать наоборот.

Можно ли одновременно запускать обе программы без этих дополнительных действий?

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Эта статья может быть полезна для вас.

Я использовал ее в качестве примера для настройки собственной среды разработки с помощью nginx.

0 голосов
/ 09 июня 2011

Вы можете указать Пассажиру использовать ruby ​​1.9.2 без набора гемов, затем в каждом из ваших приложений запустите rvm, используйте ruby-1.9.2-p180 и установите пакет. Это означает, что ваша базовая ruby-1.9.2-p180 будет содержать гемы для обоих приложений, и упаковщик должен справиться с ограничением гемов, доступных для вашего приложения.

Конечный результат:

  1. ruby-1.9.2-p180 содержит гемы для обоих приложений
  2. ruby-1.9.2-p180@rails-3.0 содержит гемы для вашего приложения 3.0
  3. ruby-1.9.2-p180@rails-3.1 содержит гемы для вашего приложения 3.1
  4. пассажир использует ruby-1.9.2-p180
  5. упаковщик должен по-прежнему ограничивать гемы, доступные каждому приложению
  6. оба приложения должны работать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...