Как включить список каталогов на веб-сервере 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 вступил в силу.