Приложение Ruby работает только когда «Пассажир» отключен - PullRequest
4 голосов
/ 06 ноября 2010

Я развернул приложение Sinatra на сервере Ubuntu, используя Apache и Passenger. Путем проб и ошибок я понимаю, что приложение работает только при отключенном пассажирском модуле.

$ a2dismod passenger

После перезапуска Apache приложение работает как положено.

Если я снова включу модуль ...

$ a2enmod passenger

... Я вижу это предупреждение при перезапуске Apache:

[warn] module passenger_module is already loaded, skipping

и приложение перестает работать. Apache отвечает, обслуживая содержимое корня документа vhost, но не распознается Пассажиром.

Я рад, что мое приложение работает, но я не уверен, как объяснить обратный эффект включения / выключения пассажирского модуля.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

Я столкнулся с той же проблемой: если вы будете следовать инструкции по установке пассажира с этой версией Apache, вы можете фактически попросить Apache загрузить пассажира дважды.

Перед добавлением 3 известных строк в файл конфигурации Apache:

LoadModule passenger_module /usr/…/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby

Проверьте файл конфигурации apache2.conf на наличие строк, подобных этим:

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Если эти строки существуют, это означает, что при запуске ваш сервер Apache будет включать все * .conf и *.load файл из / mods-available для / mods-enabled и затем загрузить их.

Так что, если вы запускаете соответствующее предупреждающее сообщение, это означает, что вы загружаете пассажирский модуль дважды!

Вы можетевоспользуйтесь этой функцией Apache, перейдя в / mods-available, ищите файлы passenger.conf и passenger.load и редактируйте их вместо apache2.conf.

Строка «LoadModule passenger_module» переходит в passenger.load,в то время как остальные 2 строки «PassengerRoot» и «PassengerRuby» переходят в passenger.conf.

Затем перезапустите сервер ивсе будет хорошо.

Подробнее об этой проблеме здесь: http://www.duccioarmenise.net/ruby-on-rails/warn-module-passenger_module-is-already-loaded/

0 голосов
/ 07 ноября 2010

Скорее всего, это означает, что вы дважды указали «LoadModule passenger_module ...».Первая запись находится где-то не в passenger.conf, а вторая - в passenger.conf.

...