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

Apache2 с Passenger и подкаталог со списком файлов

У меня есть сервер, настроенный с помощью redmine с использованием apache2 и redmine. Конфигурация была относительно простой:

<VirtualHost localhost>
RailsEnv production
# create a link in /var/lib/redmine/default/passenger to /usr/share/redmine
PassengerAppRoot /var/lib/redmine/default/passenger
SetEnv X_DEBIAN_SITEID "default"
Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

Теперь я хотел иметь подкаталог / downloads со статическими файлами. Поэтому я немного изменил конфигурацию

<VirtualHost localhost>
RailsEnv production
# create a link in /var/lib/redmine/default/passenger to /usr/share/redmine
PassengerAppRoot /var/lib/redmine/default/passenger
SetEnv X_DEBIAN_SITEID "default"
Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
    Order allow,deny
    Allow from all
</Directory>

Alias "/downloads/" /srv/downloads/
<Directory "/srv/downloads/">
    Order allow,deny
    Allow from all
    Options +Indexes
</Directory>
</VirtualHost>

Это нормально работало без установленного пассажира, но не при использовании пассажира. Интересно просьба

localhost/downloads/test.gif
works fine, but not the request for
localhost/downloads/
(which should show the directory listing... but instead queries redmine)

Возможно ли каким-то образом получить доступный для просмотра подкаталог mod_autoindex?

Также необходимо добавить Location, которое отключает пассажира.

<VirtualHost localhost>
RailsEnv production
# create a link in /var/lib/redmine/default/passenger to /usr/share/redmine
PassengerAppRoot /var/lib/redmine/default/passenger
SetEnv X_DEBIAN_SITEID "default"
Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
    Order allow,deny
    Allow from all
</Directory>

Alias "/downloads/" /srv/downloads/
<Directory "/srv/downloads/">
    Order allow,deny
    Allow from all
    Options +Indexes
</Directory>
<Location /downloads/> 
  PassengerEnabled off 
</Location> 
</VirtualHost>

или еще лучшее решение: отключите его по умолчанию и включите только для веб-приложения

<VirtualHost localhost>
PassengerEnabled off 
RailsEnv production
# create a link in /var/lib/redmine/default/passenger to /usr/share/redmine
PassengerAppRoot /var/lib/redmine/default/passenger
SetEnv X_DEBIAN_SITEID "default"
Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
    PassengerEnabled on 
    Order allow,deny
    Allow from all
</Directory>

Alias "/downloads" /srv/downloads
<Directory "/srv/downloads">
    Order allow,deny
    Allow from all
    Options +Indexes
</Directory>
</VirtualHost>