у меня есть работает Redmine-instance в / var / lib / redmine. (Конфигурация Redmine не является проблемой)
ln -s /var/lib/redmine/public /var/www/redmine
chown -R www-data:www-data /var/www/redmine
echo "RailsBaseURI /redmine" > /etc/apache2/sites-available/redmine
a2ensite redmine
service apache2 restart
Протестировано через http: //here.comes.my.ip/redmine ... отлично работает для теста.
Но у меня есть претензии к моему серверу для сопоставления папок (перезапись) и пассажира.
Вот мой виртуальный хост по умолчанию (да - все в одном vhost, причина OneSSLCertPerIP)
<VirtualHost *:80>
ServerAdmin admin@example.de
DocumentRoot /var/www
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# map servername to folders
RewriteCond ${lowercase:%{SERVER_NAME}} ^[a-z0-9_-]+\.[a-z]+$
RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
RewriteRule ^([a-z0-9_-]+)\.([a-z]+)/(.*) /var/www/$2/$1/default/$3
RewriteCond ${lowercase:%{SERVER_NAME}} ^[.a-z0-9_-]+\.[a-z0-9_-]+\.[a-z]+$
RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
RewriteRule ^([.a-z0-9_-]+)\.([a-z0-9_-]+)\.([a-z]+)/(.*) /var/www/$3/$2/v+$1/$4
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Эти правила RewriteRules сопоставляют example.de с / var / www / de / example / default и sub.example.de с / var / www / de / example / v + sub
Так хорошо (отображение работает) так плохо (вызов redmine через пассажира нет):
ln -s /var/lib/redmine/public /var/www/de/example/v+redmine
chown -R www-data:www-data /var/www/de/example/v+redmine
[...]
service apache2 restart
[...] можно заменить несколькими попытками разместить RailsBaseURI с разными папками для / redmine на разных позициях в / etc / apache2 / sites-available / default
Результат: http://redmine.example.de/ - Есть просто список каталогов вместо Redmine.
Дополнительная информация: ОС: Ubuntu-server Oneiric
Хорошо нашел решение, но оно не очень динамичное :(
я добавил
<Directory /var/www/de/example/v+redmine>
RailsBaseURI /de/example/v+redmine
PassengerAppRoot /var/lib/redmine
Options -MultiViews
</Directory>
mod_rewrite вызывает небольшую путаницу в отношении путей выполнения для пассажира. PassengerAppRoot исправит это. ;)
P.S .: Используйте только ОДИН способ (uri) для доступа к вашему приложению - иначе ссылки будут перепутаны.