Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/08/2013, à 08:15

legaub

Apache : Où placer les directives <directory> ?

Bonjour,

Donc, je débroussaille en ce moment la configuration d'un serveur apache. Mon souci est de savoir où placer les balises <directory> et de comprendre comment elles "s'héritent"

J'en trouve donc dans :

* /etc/apache2/apache2.conf voir ici : http://doc.ubuntu-fr.org/apache2#fichie … figuration

* /etc/apache2/conf.d/security voir : https://www.isalo.org/wiki.debian-fr/S% … .C3.A9faut

* dans chaque /etc/apache2/sites-available/fichier_config_vhost voir ici : http://www.mistra.fr/tutoriel-linux-ser … ache2.html
Avec la mise en garde "Cependant, comme mentionné dans ce fichier, décommenter cette section peut provoquer un dysfonctionnement de certaines applications fournies par les paquets Debian" si l'on modifie /etc/apache2/conf.d/security.

Bon, très bien renseignons donc dans chaque fichier_config_vhost. Tiens, voyons comment est foutu celui du site par défaut :

<VirtualHost *:80>
   ServerAdmin webmaster@localhost

   DocumentRoot /var/www
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order deny,allow
      deny from all
      allow from 192.168.19.0/24
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Alors là, excusez-moi, mais je ne comprends plus rien :

* pourquoi donner de directives pour / ? Est-ce bien le / ou un autre, relatif ?

* pourquoi redonner la même directive pour /var/www ? Ça veut dire qu'elles ne s'héritent pas ? Dans ce cas, pourquoi faire une directive / ? Et une pour /var/www ?

Bon, je m'arrête là, mais je peine vraiment. J'ai beaucoup de mal à trouver une doc de référence, vu que la doc officielle indique de renseigner httpd.conf qui n'est plus utilisé.

Dernière modification par legaub (Le 14/08/2013, à 08:16)

Hors ligne

#2 Le 18/08/2013, à 11:13

bruno

Re : Apache : Où placer les directives <directory> ?

C'est pourtant expliqué ici : http://httpd.apache.org/docs/2.4/fr/mod … #directory
Peu importe que la section <directory> soit dans httpd.conf ou un fichier de configuration pour un hôte virtuel, le fonctionnement est le même.

Extrait : Si plusieurs sections <Directory> (sans expression rationnelle) correspondent au répertoire (ou à un de ses parents) qui contient le document, les directives de la section <Directory> dont le chemin est le plus court sont appliquées en premier, en s'intercalant avec les directives des fichiers .htaccess.

Ici on est dans la configuration de l'hôte virtuel par défaut. La section <Directory /> permet d'appliquer des options de sécurité globales, quitte à affiner ensuite pour les dossiers et sous-dossiers servis par Apache. Dans ton cas la directive AllowOverride None interdit globalement l'utilisation de fichiers .htacccess (et effectivement le Options FollowSymLinks fait doublon).