У меня проблема с невозможностью запуска Passenger из-за, по-видимому, распространенной проблемы, в которой Passenger утверждает: нет такого файла или каталога - config / environment.rb.
Я искал в Интернете повсюду, и это, похоже, проблема, связанная с разрешениями. Насколько я понимаю, Passenger работает как владелец config.ru и файла config / environment.rb. В моем случае этот владелец - «админ». Я запускаю корень приложения в домашнем каталоге пользователя-администратора. Итак, я считаю, что у меня установлены правильные разрешения, используя: sudo chown -R admin:admin /home/admin/www
и sudo chmod -R 755 /home/admin/www
где корень приложения находится по адресу: / home / admin / www / app
Вот мой файл конфигурации виртуального сервера:
<VirtualHost *:80> ServerName track.example.com DocumentRoot /home/admin/www/app/current/public <Directory /home/admin/www/app/current/public> Options FollowSymLinks AllowOverride none Order allow,deny Allow from all </Directory> PassengerResolveSymlinksInDocumentRoot on RailsBaseURI / PassengerAppRoot /home/admin/www/app RailsEnv production ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel debug CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Я использую Ubuntu 12.0.4, Rails 3.2.8, Ruby 1.9.3, Passenger 3.0.18, Apache 2
Спасибо за вашу помощь.
Ваш PassengerAppRoot
неправильно. Вы указали /home/admin/www/app
но ваше приложение на самом деле в /home/admin/www/app/current
. Вот почему Пассажир не может его найти.
Решение - исправить конфигурацию.
PassengerAppRoot /home/admin/www/app/current
Всякий раз, когда у меня возникают проблемы, которых я не понимаю, я обычно перезагружаю новый диск на своем линоде и быстро выполняю минимальную установку, чтобы проверить, работает ли мой список шагов. Иногда другие мои действия на сервере могут вызывать проблемы, поэтому важно, чтобы установка с минимальным набором параметров работала, прежде чем я буду рассматривать другие факторы.
Что касается Passenger, вы не можете на 100% полагаться на генерируемые им сообщения об ошибках. Иногда вам может не хватать файла index.html или файла представления, но если вы читаете ошибку Passenger, это как будто вы напутали десять разных вещей.
Недавно я заставил Passenger работать с нуля, поэтому вот список того, что я сделал:
rm -rf /tmp/*
gem install passenger
cmd (со свопом 2 ГБ).passenger-install-apache2-module
cmd. В конце Passenger даст 5 строк кода для вставки в httpd.conf. Сделал это.Конфигурация Virtualhost выглядит так:
<VirtualHost *:80>
ServerName www.domain.com
DocumentRoot /var/www/html/app/public
<Directory /var/www/html/app/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Перезагрузите apache и все!
Passenger - это модуль для Apache, работающий как часть процесса Apache. Это означает, что у пользователя Apache должны быть разрешения для проекта. Из Документация для пассажиров Apache:
Вам также может потребоваться настроить права доступа к файлу / папке. Убедитесь, что следующие папки доступны для чтения и исполнения Apache:
* this public folder. * the application’s config folder. * all parent folders. That is, /webapps/rackapp and /webapps must also be readable and executable by Apache.