При первом развертывании приложения rails не удается заставить passenger работать?

#ruby-on-rails #ruby-on-rails-3 #passenger

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

Вопрос:

Использовал railsready, затем passenger с / apache2, наконец скопировал мое приложение в / home / myapp.

Вставил строки конфигурации passenger в /etc / apache2 / apache.conf внизу вместе с настройками моего виртуального хоста:

Имя сервера — rails.

 LoadModule passenger_module /home/myapp/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /home/myapp/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.7
PassengerRuby /home/myapp/.rvm/wrappers/ruby-1.9.2-p180/ruby

<VirtualHost *:80>
    ServerName rails
    DocumentRoot /home/myapp/public
</VirtualHost>
  

Все, что я получаю, это страницу apache «Это работает», когда я открываю IP-адрес. Я делаю что-то не так?

Комментарии:

1. Я думаю, вы тоже забыли скопировать конфигурацию passenger.

2. Я сделал, загрузочный модуль, PassengerRoot, строки PassengerRuby. Поместите их прямо над строками виртуального хоста

3. однако, похоже, они не включили это в ваш вопрос.

Ответ №1:

Вы объявили a ServerName , поэтому вы должны использовать его для доступа к этому виртуальному хостингу (а не к IP-адресу, как вы упомянули). Подключитесь к http://rails /

Чтобы это сработало, имя хоста rails должно соответствовать IP вашего сервера. Вы можете добавить его в свой файл hosts или использовать реальное доменное имя, настроенное для разрешения на этот IP.

Или вы можете изменить значение Apache по DocumentRoot умолчанию VirtualHost , и тогда оно всегда будет отвечать приложением Rails.

Комментарии:

1. да, изменение значения по умолчанию сработало. Теперь мне нужно разобраться с ошибкой paperclip.

Ответ №2:

Попробуйте:

 <VirtualHost *:80>
  ServerName rails
  DocumentRoot /home/myapp/public
  <Directory /var/www/robox/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>
  

Кроме того, вам может потребоваться отключить сайт по умолчанию. В Ubuntu вы можете сделать это с:

 [sudo] a2dissite default
[sudo] service apache2 restart
  

Комментарии:

1. ОК. Следующее: оно может не совпадать с ServerName . Что именно вы вводите в браузере, чтобы получить доступ к этому приложению?

2. Firefox, я получаю эту ошибку. Но оно разрешается по IP. apache2: не удалось надежно определить полное доменное имя сервера, используя THE_IP для ServerName

3. Нет, что вы вводите в строке местоположения браузера, чтобы получить доступ к приложению. Это http://rails ?

4. Также это сообщение от apache2 сообщает мне, что оно не отображает имя rails на сервер. На какой ОС вы работаете?

5. Смотрите ответ @ michael-witrant выше