Назад | Перейти на главную страницу

Ошибка пассажира: нет такого файла или каталога - config / environment.rb

Я установил Redmine на MacOSX Server 10.6.8 в соответствии с этим описание установки. Пока все работает нормально: когда я запускаю webrick, сервер обслуживает страницы Redmine. Драгоценные камни и redmine устанавливаются под пользователем «redmine».

После этого я решил настроить apache2 с пассажиром, как описано Вот. Как следует из описания, я также установил пассажирское стекло который хранит файлы конфигурации своего виртуального хоста в /private/etc/apache2/passenger_pane_vhosts. Это то, что я придумал после множества попыток и ошибок вручную. По крайней мере, теперь я могу попасть на страницу с ошибкой пассажира.

// redmine.vhost.conf
<VirtualHost *:80>    
  ServerName myserver
  ServerAlias localhost
  DocumentRoot "/Users/redmine/Sites/redmine"
# RackEnv production
# RackBaseURI /
  RailsEnv production
  RailsBaseURI /
# PassengerUser www-data
# PassengerGroup www-data
  <Directory "/Users/redmine/Sites/redmine">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Однако в пассажирском модуле по-прежнему возникают следующие ошибки.

Error message: No such file or directory - config/environment.rb

В /var/log/apache2/error_log веб-сервера заявил следующее.

[warn] NameVirtualHost *:80 has no VirtualHosts
[notice] Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 configured -- 
  resuming normal operations
[ pid=21824 thr=2151905620 file=utils.rb:176 time=2012-06-01 18:22:07.126 ]: *** 
  Exception Errno::ENOENT in PhusionPassenger::ClassicRails::ApplicationSpawner 
  (No such file or directory - config/environment.rb) (process 21824, 
  thread #<Thread:0x0000010086f2a8>):

Я экспериментировал с пользовательский переключатель функциональности пассажира как описано в документации - как вы можете понять из моего файла конфигурации. Хотя мне это не удалось.


ОБНОВИТЬ: (04.06.2012)

После того, как я изменил DocumentRoot и Каталог путь к /Users/redmine/Sites/redmine/public как предложил Хольгер, сайт Redmine доступен по http://myserver. Однако он недоступен под http://myserver/redmine; то 404.html из public/ папка обслуживается.
Я думаю, что Redmine доступен через http://myserver потому что я перезаписываю DocumentRoot для всего сервера Apache (?). Но я не этого хочу. Без установки DocumentRoot в redmine.vhost.conf Я обнаружил следующую страницу с ошибкой.

Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to 
use an ErrorDocument to handle the request.
Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 Server at myserver Port 80

Вопрос: Как мне настроить сервер, чтобы получить желаемый http://myserver/redmine URL?

В соответствии с пассажирская документация вы должны использовать public каталог в качестве корня документа. В вашем случае это будет /Users/redmine/Sites/redmine/public.

Таким образом, в корне документа находятся только действительно общедоступные файлы, и Passenger находит правильный корень приложения. Вы никогда не должны помещать какие-либо файлы реального кода (или, что еще хуже: файлы конфигурации) в корень документа, так как они доступны для любого чтения.

Чтобы подключиться как URL-адрес / redmine, попробуйте

RewriteBase /redmine/

в вашем VirtualHost

Только для Пользователей, установивших Redmine с Bitnami-Stack:

Мне действительно интересно, почему я получил ту же ошибку, которая описывала ThreadOpener после обновления и перезапуска моей ОС. Дистрибутив также установил apache и mysql и запустил этот. BitNami имеет свой собственный apache- и Mysql-сервер внутри Bundle.

Решение: остановите Apache и mysql и запустите BitNami с помощью:

cd /opt/redmine-2.3.1-3
ctlscript.sh start mysql
ctlscript.sh start apache

Это решит мою проблему!