Débusquer le AllowOverride
Où comment faire face à la configuration d’apache et la gestion de certaines autorisations serveur
Sur le serveur du boulot, j’ai tenté d’installer un groupware. Passons l’idée saugrenue de vouloir un tel jouet. Pour resituer, le serveur tourne sur une debian etch avec apache 1.3 et alternc. (Que ceux qui rigolent au fond sortent).
Ces groupwares ont la fâcheuse manie d’élargir un peu leur droit via un .htaccess.
Dans mon cas, pour d’obscurs raisons, apache balance à tout bout de champ une erreur 500, internal server error.
En supprimant le fichier .htaccess, le site devient accessible. Avec ce test, on est presque sur d’avoir le signe d’un AllowOverride None embusqué. Du coup il est nécessaire de fouiller le contenu de la configuration.
Pour commencer apache charge le premier fichier de configuration depuis /var/apache/httpd.conf. Ce fichier peut faire appel à d’autres fichiers de configuration grâce à la directive Include. En fonction du chemin donnée, il charge indifféremment un fichier ou un l’ensemble des fichiers d’un répertoire.
Include /etc/apache/conf.d
En suivant les différents include on obtient ceci :
/etc/apache/httpd.conf
– /etc/apache/conf.d/alternc.conf
— /etc/alternc/bureau.conf
– /etc/apache/conf.d/override_php.conf
— /var/alternc/apacheconf/"lettre domaine"/"nom sous domaine"
— ...
– /etc/apache/conf.d/php4.conf
Une fois tout consulté, on trouve dans le htppd.conf
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>
Il est déconseillé de changer cette directive vu qu’elle s’applique à l’ensemble des sites hébergés.
L’idée la plus simple est d’ajouter un nouveau fichier de conf dans /etc/apache/conf.d
A ce fichier on met :
AllowOverride All
Les droits dans certains peuvent être un peu trop important, il suffit alors de restreindre les droits du allowoverride.
Pour rappel les paramètres sont :
- AuthConfig
- FileInfo
- Indexes
- Limit
- Options
Pour plus d’information un lien : La doc apache