Пассажир просто показывает каталог в Apache

#ruby-on-rails-3 #ubuntu #apache2 #passenger

#ruby-on-rails-3 #ubuntu #apache2 #пассажир

Вопрос:

Я пытаюсь использовать Passenger для развертывания приложения rails в Ubuntu с помощью Apache. Я следовал практически всем руководствам, которые я мог найти по настройке Passenger с Apache / Ubuntu. Однако, когда я захожу на сайт, я просто вижу фактические каталоги файлов, а не запущенную версию приложения. Если я переключаюсь на каталог / public, я просто вижу общедоступный каталог, когда захожу на сайт. Я могу запускать и останавливать сервер rails, вызывая rails s без каких-либо ошибок, но по-прежнему не могу видеть запущенную версию приложения. Кто-нибудь сталкивался с подобными проблемами? Есть ли хорошая отправная точка, которую кто-нибудь мог бы предложить мне посмотреть? Я не уверен, что проблема в apache или passenger.

Конфигурация Apache

  LoadModule passenger_module /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
 PassengerRuby /usr/bin/ruby
 PassengerRoot /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
 PassengerMaxPoolSize 10
 <VirtualHost *:80>
     ServerName http://www.myapp.com/
     DocumentRoot /var/www/myapp/current/
<Directory /var/www/myapp/current/public>
    Allow from all
</Directory>
  

Когда я перезапускаю apache, я получаю сообщение о том, [Sun Nov 06 14:43:48 2011] [warn] module passenger_module is already loaded, skipping что я не уверен, ошибка это или нормально.

Обновить

Когда я запускаю find / -name 'mod_passenger.so' , я получаю два местоположения: /usr / lib / ruby/gems/1.9.1/gems / passenger-3.0.9/ext/apache2/mod_passenger.so /usr / lib/apache2/modules/mod_passenger.so

Обновление 2

У меня есть несколько файлов passenger.config

  /etc/apache2/mods-enabled/passenger.conf
 /etc/apache2/mods-available/passenger.conf
 /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/debian/passenger.conf
  

Каждый из файлов passenger.conf содержит следующее:

  <IfModule mod_passenger.c>
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
 </IfModule>
  

Ответ №1:

Попробуйте поместить следующее в конфигурационный файл apache

 <Directory /var/www/myapp/current/public>
    Allow from all
    #Add following line
    Options  Includes -Indexes
</Directory>
  

Ответ №2:

У вас может быть mod_passenger.so символическая ссылка в вашем каталоге с поддержкой apache2 / mods. Это привело бы к двойному импорту.

Выполнить

 a2dismod mod_passenger.so
  

чтобы удалить любую символическую ссылку, перезапустите Apache.