Je ne parviens pas à activer la liste des répertoires sur mon serveur Web Apache. J'ai essayé diverses solutions postées mais ne fonctionnant pas. Je viens juste d'installer httpd 2.4.6 et d'activer https à l'aide de ssl.conf sous /etc/httpd/conf.d/ssl.conf et d'essayer d'accéder à https://server.example.com/ ne pas énumérer le dir. Ce sont la configuration dans ssl.conf
DocumentRoot "/home/userx/Downloads/"
ServerName server.example.com:443
Vous trouverez ci-dessous le contenu de ssl.conf sous l'élément VirtualHost. Les fichiers et les premiers éléments de l'annuaire étaient déjà présents lors de l'installation, je viens d'ajouter Directory pour "/ home/userx/Downloads". Je souhaite parcourir le contenu de/home/userx/Téléchargements lorsque j'accède à l'URL https://server.example.com/ . Qu'est-ce que j'oublie ici ?
<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>
Voyez si vous pouvez accéder à/lister le répertoire '/ icons /'. Ceci est utile pour tester le comportement de Directory dans Apache.
pour par exemple: Vous pourriez avoir ci-dessous config par défaut dans votre fichier httpd.conf.Alors frappez l'URL: IP: Port/icons/et voyez s'il liste les icônes ou non.Vous pouvez également essayer en mettant le 'répertoire/dossier' 'à l'intérieur du' var/www/icons '.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
Si cela fonctionne, vous pouvez vérifier ou modifier la configuration de votre répertoire personnalisé avec la configuration ''.
J'ai résolu le problème en activant le mod_autoindex
d'Apache. C'était désactivé par défaut.
Sudo a2enmod autoindex
Essaye ça.
<Directory "/home/userx/Downloads">
Options +Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
</Directory>
Si cela ne fonctionne pas, il y a probablement un "refus d'index" qui dépasse votre configuration.
Selon la documentation Apache, se trouvant ici , la directive DirectoryIndex
doit être spécifiée dans le fichier site .conf
(généralement présent dans /etc/Apache2/sites-available
sous linux).
Citant la documentation, on peut lire:
Si aucun fichier de la directive
DirectoryIndex
ne peut être situé dans le fichier répertoire, alors mod_autoindex peut générer une liste du répertoire Contenu. Ceci est activé et désactivé en utilisant la directiveOptions
. Pour Par exemple, pour activer des listes de répertoires pour un répertoire particulier, vous peut utiliser:<Directory /usr/local/Apache2/htdocs/listme> Options +Indexes </Directory>
Pour empêcher les listes de répertoires (pour des raisons de sécurité, par exemple), vous devez supprimer le mot-clé Indexes de chaque directive Options dans votre fichier de configuration. Ou pour les empêcher seulement pour un seul répertoire, vous pouvez utiliser:
<Directory /usr/local/Apache2/htdocs/dontlistme> Options -Indexes </Directory>
Une solution consiste à créer un lien symbolique vers le répertoire de votre choix dans le répertoire/var/www/html /.
Sudo ln -s /home/ /var/www/html/
Gardez à l'esprit la sécurité.
Celui-ci a résolu mon problème concernant le paramètre SELinux:
chcon -R -t httpd_sys_content_t /home/*
Je devais explicitement supprimer la page d'accueil et redémarrer les services pour voir les listes de mon répertoire.
$ Sudo rm -rf /etc/httpd/conf.d/welcome.conf
$ Sudo service httpd restart
Je devais désactiver selinux pour que cela fonctionne. Remarque. Le système doit être redémarré pour que selinux prenne effet.