После нескольких недель проб и ошибок я наконец смог исправить это с помощью RTFM.Я удивлен, что не было ответов на мой вопрос о Stackoverflow, и я не смог найти другие статьи, которые помогли бы с моим вопросом.Эта проблема должна затрагивать всех, кто развертывает приложение RoR с помощью Capistrano на сервере Linux с Apache2 и Passenger.
У меня есть Capistrano, развертывающее приложение в / home / smith / www / dashboard, которое создает текущую папкукакие ссылки на релизы /
Пассажиру необходимо найти config / environment.rb для запуска приложения Rails.По умолчанию Phusion Passenger предполагает, что корневой каталог приложения является родительским каталогом общего каталога. См .: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerAppRoot
Проблема заключается в том, что при использовании Capistrano по умолчанию приложение развертывается в
/ home / smith / www / dashboard / current /
Поэтому по умолчанию Passenger считает следующий путь:
/ home / smith / www / dashboard / config / environment.rb
Passenger предоставляет возможность установить опцию конфигурации PassengerAppRoot в файле виртуального хоста Apache следующим образом:
PassengerAppRoot / home / smith / www / dashboard / current
Thisпозволяет Пассажиру правильно найти файл config / environment.rb:
PassengerAppRoot /home/scervera/www/dashboard/current/config/environment.rb
Здесь находится мой виртуальный хостfile:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /home/smith/www/dashboard/current/public
<Directory /home/smith/www/dashboard/current/public>
Options FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>
PassengerAppRoot /home/smith/www/dashboard/current
</VirtualHost>
Могут быть и другие способы исправить это, но я считаю, что это "по книге".