Конфигурация Phusion Passenger через .htaccess - PullRequest
4 голосов
/ 27 сентября 2010

Я пытаюсь установить Redmine, и у меня возникают проблемы с работой Phusion Passenger с любыми каталогами, кроме DocumentRoot.

Я поместил общедоступный каталог, загруженный из Redmine, в ~ / www / public / entry / redmine.mysite.com /, а остальные каталоги в ~ / www / app / redmine.mysite.com /.

Я добавил следующую строку в файл .htaccess в общей папке:

PassengerAppRoot ~/www/app/redmine.mysite.com

Всякий раз, когда я пытаюсь загрузить страницу, она просто дает мне простую страницу Mozilla, не найденную.

Есть мысли?


Дополнительная информация:

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

DocumentRoot - это ~ / www / public

В этой папке находится файл .htaccess, включая следующее правило:

RewriteCond ${lowercase:%{SERVER_NAME}} ^(dev\.)?(stg\.)?(www\.)?(.*)$
RewriteCond %{REQUEST_URI} !^/resource/(.*)$
RewriteRule !^entry/ entry/%4%{REQUEST_URI}

Если я создаю новый VirtualHost для порта 3000 с DocumentRoot = ~ / www / public / entry / redmine.mysite.com /, все загружается правильно.

Однако, если вместо этого я использую разрешение на основе mod_rewrite в моей кодовой базе, я получаю сообщение об ошибке "страница не найдена".


Если я захожу на redmine.mysite.com/404.html, он загружает страницу 404.html, которая находится в правильной папке.


Если я изменю PassengerAppRoot на ~ / www / app / redmine.mysite.com / test, он сообщит мне, что каталог не является допустимым корневым каталогом приложения Ruby on Rails.

1 Ответ

0 голосов
/ 27 сентября 2010

Похоже, что решение было установить RailsBaseURI на путь относительно DocumentRoot на сервере, а не REQUEST_URI!

Я думал, что это относится к фактической строке URI, но оказывается, что это не так!

...