Всем хабрапривет! Сегодня столкнулся с проблемой, опыта в серверном администрировании немного, потому решил обратиться за помощью к сообществу :)
Итак. Есть две папки, 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 :)