web-dev-qa-db-fra.com

Comment afficher l'index de l'annuaire dans Apache 2.4 avec une racine de document personnalisée

j'ai un problème dans Apache 2.4 dans Ubuntu 13.10 . J'essaie de changer la racine du document en /home/fandi/public_htmlEt tout fonctionne bien. Mais j'essaie de créer un dossier dans mon public_html/j'obtiens une erreur comme celle-ci:

[Sat Jan 25 10:59:50.149441 2014] [autoindex:error] [pid 1093] [client 127.0.0.1:39901] AH01276: Cannot serve directory /home/fandi/public_html/report_php/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive

Je dois créer le fichier index.html, index.php et un autre fichier index.xxx.

Par défaut, il doit afficher l'index du répertoire . Comment activer l'index du répertoire?

Ceci est mon fichier 000-default.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/fandi/public_html

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined

    <Directory "/home/fandi/public_html">
        Options All
        AllowOverride All
        Require all granted
        Options Indexes FollowSymLinks
    </Directory>

</VirtualHost>

# vim: syntax=Apache ts=4 sw=4 sts=4 sr noet

S'il vous plaît aider, merci avant ^^

18
fanjavaid

Il s'avère que vous devez désactiver DirectoryIndex dans Apache 2.4 pour obtenir des index automatiques.

DirectoryIndex disabled
Options Indexes

Si DirectoryIndex n'est pas désactivé, l'index automatique ne fonctionne pas et Apache envoie un fichier 403 interdit ou un fichier 404 introuvable si vous utilisez fastcgi/php-fpm.

Voici les lignes du journal des erreurs correspondantes (à des fins de recherche):

[authz_core:error] client denied by server configuration:
[proxy_fcgi:error] Got error 'Primary script unknown\n'
8
mad
Options All <--turn on all options
Options Indexes FollowSymLinks   <--- replace previously set options with these two

La deuxième ligne est redondante, car vous avez déjà activé toutes les options avec la première ligne et, comme les deux options ne sont pas précédées du préfixe +, elles remplacent en fait la liste complète des options activées, avec All avec seulement ces deux options individuelles. .

6
Marc B

J'ai réussi à le faire fonctionner

En gros, il semble qu'Apache2.4 ne transfère pas les paramètres de DocumentRoot à vos hôtes virtuels, à moins que ceux-ci ne soient des sous-dossiers de DocumentRoot, comme les versions précédentes le faisaient. Quel genre de sens a du sens, mais le changement devrait être documenté et ce n’était pas le cas.

Ce que je veux dire, c’est que dans votre httpd.conf vous avez (c’est un OS X):

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
    Options +Indexes +FollowSymLinks
    # etc
</Directory>

Et puis dans votre extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/pth/to/somewhere/completely/different"
    ServerName my-virtual-Host.dev
    ErrorLog "/private/var/log/Apache2/my-virtual-Host.dev-error_log"
    CustomLog "/private/var/log/Apache2/my-virtual-Host.dev-access_log" common
</VirtualHost>

Le VH héritait de tous les paramètres - pas plus s'il ne s'agit pas d'un sous-dossier. Donc, ce que vous devez faire est de copier et coller les paramètres dans le VH (ou vous pouvez probablement créer un autre <directory si vous avez beaucoup de VH au même endroit).

<VirtualHost *:80>
    DocumentRoot "/pth/to/somewhere/completely/different"
    ServerName my-virtual-Host.dev
    ErrorLog "/private/var/log/Apache2/my-virtual-Host.dev-error_log"
    CustomLog "/private/var/log/Apache2/my-virtual-Host.dev-access_log" common
    <Directory "/pth/to/somewhere/completely/different">
        Options +Indexes
    </Directory>
</VirtualHost>

C'est le + Index qui fait la magie.

5
gotofritz

J'ai eu le même problème avec Centos 7.2 et Apache 2.4.

Dans la nouvelle installation, le problème est probablement dû à welcome.conf qui désactive les index d'option à chaque emplacement:

<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /.noindex.html
</LocationMatch>

Ce fichier est restauré à chaque mise à niveau d'Apache. Vous devez ensuite commenter ou supprimer les lignes précédentes.

5
balucio

Dans le journal, vous pouvez trouver une erreur

[Dim Déc 03 17: 38: 17.649269 2017] [autoindex: erreur] [pid 4806] [client :: 1: 57323] AH01276: Impossible de servir le répertoire/etc/httpd/conf/htdocs /: Aucune correspondance DirectoryIndex () trouvée et index de répertoire généré par le serveur interdits par la directive Options

réparer:-

alors vous devez supprimer la ligne dans /etc/httpd/conf.d/welcome.conf

en dessous de la configuration existante: -

<LocationMatch "^/+$">
   Options -Indexes
    ErrorDocument 403 /.noindex.html
</LocationMatch>

résolu avec la configuration ci-dessous,: - a commenté une ligne.

<LocationMatch "^/+$">
   #Options -Indexes
    ErrorDocument 403 /.noindex.html
</LocationMatch>
1
viki

Ajoutez cette ligne à votre fichier vhost.conf pour le site

DirectoryIndex default.html

Et vous êtes tous ensemble 

0
error2007s

pour les personnes futures, si vous suivez tout ce qui précède et que le problème persiste, essayez ceci:

httpd.conf(make sure belows are open):
LoadModule alias_module modules/mod_alias.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_Host_module modules/mod_authz_Host.so
LoadModule autoindex_module modules/mod_autoindex.so
Include conf/extra/httpd-autoindex.conf

extra/httpd-autoindex.conf:

<Directory "change to your directory">
0
hellowd