Почему мое приложение Rails не загружается с использованием Passenger 3, RVM и Rails 3.1? - PullRequest
3 голосов
/ 12 января 2012

У меня проблемы с Passenger 3, Apache, RVM и приложением Rails 3.1 в Ubuntu.По какой-то причине приложение Rails не загружается, однако раньше я запускал в основном ту же конфигурацию, и у меня не возникло проблем.

У меня Ruby 1.9.2 установлен в RVM и Passenger установлен со всеми гемами по умолчанию.

Я поместил в файл apache.conf следующее:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11/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

Это моя конфигурация виртуальных хостов:

<VirtualHost *:80>
  ServerName server
  DocumentRoot /root/www/tester/public
  <Directory /root/www/tester/public>
    Allow from all
    Options -MultiViews
  </Directory>
</VirtualHost>

Пассажир, кажется, загружается, как ApacheЖурнал показывает:

[Wed Jan 11 23:18:28 2012] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 configured -- resuming normal operations

, но я не могу загрузить приложение вообще.

Если я запускаю автономный Passenger, я получаю следующую ошибку:

2012/01/11 23:03:31 [error] 13427#0: *4 "/root/www/sound/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"

Я изменил все разрешения на 755 и передал право собственности на apache (www-data), но безрезультатно.

Наконец, когда я запускаю статус пассажира, я получаю:

----------- General information -----------
  max      = 6
  count    = 0
  active   = 0
  inactive = 0
 Waiting on global queue: 0

----------- Application groups -----------

Но, как видите, приложение не загружено.

Ответы [ 2 ]

3 голосов
/ 12 января 2012

ИСПРАВЛЕНО! - Мне нужно было удалить файл виртуальных хостов по умолчанию в каталоге сайтов!

1 голос
/ 12 января 2012

Полагаю, вы ищете правильное место, и это как-то связано с разрешениями пользователя.

Правило номер 1 для Пассажира:

  • Пассажир будет работать какпользователь, которому принадлежит "config / environment.rb" (или "config.ru" для стоечных приложений)

Кроме того, я бы посоветовал никогда не запускаться от имени пользователя root.

/var/www или /var/rails - это обычные места для размещения ваших рельсовых приложений

, но я обычно получаю пользователя для каждого приложения и помещаю его в домашний каталог.

А именнодля моего приложения у меня есть

  1. пользователь myapp
  2. каталог /home/myapp/deploy/
  3. символическая ссылка на код /home/myapp/deploy/current
  4. все эти каталоги принадлежат myapp

Мой конфиг apache - что-то вроде

<VirtualHost *:80>
  ServerName myapp.com
  DocumentRoot /home/myapp/deploy/current
</VirtualHost>

Для меня это делает разделение владения ясным и избегает любогоэти проблемы.

(в частности, все задачи, выполняемые через capistrano, выполняются как пользователь myapp)

...