Как включить список каталогов на веб-сервере apache
Я не могу включить список каталогов на моем веб-сервере apache. Я пытался опубликовать различные решения, но не работает. Я только что установил httpd 2.4.6 и включил https, используя ssl.conf в /etc/httpd/conf.d/ssl.conf dir и пытаясь получить доступ к https://server.example.com/, но это не список dir. Это конфиг в ssl.conf
DocumentRoot "/home/userx/Downloads/"
ServerName server.example.com:443
Ниже приведено то, что имеется в ssl.conf под элементом VirtualHost. Файлы и первые элементы каталога были уже там, когда я установил, я просто добавил каталог для "/home/userx/Downloads". Я хочу просмотреть содержимое /home/userx/Downloads при доступе к URL-адресу https://server.example.com/. Что мне здесь не хватает?
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
<Directory "/home/userx/Downloads">
Options +Indexes
AllowOverride all
</Directory>
Ответы
Ответ 1
Посмотрите, можете ли вы получить доступ/перечислить каталог "/icons/". Это полезно для проверки поведения каталога в Apache.
например: у вас может быть ниже config по умолчанию в вашем файле httpd.conf. Также нажмите на URL: IP: порт/значки/и посмотрите, отображается ли список значков или нет. Вы также можете попробовать, каталог/папка 'внутри' var/www/icons '.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
Если он работает, вы можете перепроверить или изменить конфигурацию своего настраиваемого каталога с настройкой '.
Ответ 2
Попробуйте это.
<Directory "/home/userx/Downloads">
Options +Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
</Directory>
Если это не работает, у вас, вероятно, есть "запретить индексы" где-то, что переопределяет вашу конфигурацию.
Ответ 3
Я решил проблему, включив mod_autoindex
из Apache. По умолчанию он был отключен.
sudo a2enmod autoindex
Ответ 4
В соответствии с документацией Apache найденной здесь, директива DirectoryIndex
должна быть указана в файле сайта .conf
(обычно найденный в /etc/apache2/sites-available
на linux).
Цитата из документов, она гласит:
Если ни один файл из директивы DirectoryIndex
не может быть расположен в, то mod_autoindex может генерировать список каталогов содержание. Он включается и выключается с помощью директивы Options
. Для Например, чтобы включить списки каталогов для определенного каталога, вы может использовать:
<Directory /usr/local/apache2/htdocs/listme>
Options +Indexes
</Directory>
Чтобы предотвратить список каталогов (например, для целей безопасности) вам следует удалить ключевое слово Indexes из каждой директивы Options в ваш файл конфигурации. Или предотвратить их только для одного каталог, вы можете использовать:
<Directory /usr/local/apache2/htdocs/dontlistme>
Options -Indexes
</Directory>
Ответ 5
Это решило мою проблему с настройкой SELinux:
chcon -R -t httpd_sys_content_t /home/*
Ответ 6
После того как я изменил Options -Index
на Options +Index
в своем файле настроек, я удалил страницу приветствия и перезапустил службы.
$ sudo rm -f /etc/httpd/conf.d/welcome.conf
$ sudo service httpd restart
После этого я смог увидеть списки каталогов.
Ответ 7
Одним из способов является создание мягкой ссылки на любой каталог, который вы хотите перечислить в каталоге /var/www/html/.
sudo ln -s /home/ /var/www/html/
Помните о безопасности.
Ответ 8
Мне пришлось отключить selinux, чтобы сделать эту работу. Запись. Систему необходимо перезагрузить, чтобы selinux вступил в силу.