CarpeDiem
@CarpeDiem

Правильный рерайт для Ruby приложения (доступность Redmine для более чем одного виртуального хоста apache2)

Всем хабрапривет! Сегодня столкнулся с проблемой, опыта в серверном администрировании немного, потому решил обратиться за помощью к сообществу :)

Итак. Есть две папки, example и redmine, лежащие на одном уровне иерархии файловой системы (/var/www). Одна из папок (example) установлена в качестве DocumentRoot для виртуального хоста в Apache2 и доступна через интернет: example.org

Задача: нужно прописать рерайт так чтобы при заходе на example.org/redmine сервер обращался к папке /var/www/redmine

Директива Alias не сработала:

<VirtualHost *:80>

ServerAdmin mymail@gmail.com
ServerName www.example.org
ServerAlias example.org *.example.org
DocumentRoot /var/example

Alias /redmine/ "/var/www/redmine/"

<Directory /var/www/redmine>
AllowOverride all
Options -MultiViews
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>

Пробовал по этому совету в папке example создавать папку redmine, а в ней делать символьную ссылку на /var/www/redmine/public:
ln -s /var/www/redmine/public /var/www/example/redmine
Не помогло.

При заходе на example.org/redmine в показанной выше конфигурации выдается ошибка Passenger, «No such file or directory — config/environment.rb» — т.е. он не видит правильный путь для запуска.

Сложность похоже еще в том, что Redmine — Ruby приложение, а для него обязательно прописывать особые директивы. Например RailsBaseURI, которое по-видимому отсчитывается относительно директивы DocumentRoot.

Please help :)
  • Вопрос задан
  • 3575 просмотров
Пригласить эксперта
Ответы на вопрос 1
sdevalex
@sdevalex
Это проще сделать на уровне Nginx.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы