Chargement module dav sous Apache

De EjnTricks
Révision de 30 novembre 2018 à 00:08 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sous Ubuntu il est possible de recharger la configuration de Apache dynamiquement en fournissant l'argument graceful à la commande apache2ctl. Cependant, pour une installation standard sous Ubuntu, ceci produit un message d'avertissement lorsque le module DAV, utilisé pour l'exposition de SVN sous Apache, est activé.

#sudo apache2ctl graceful
[Thu Nov 29 22:36:29.984202 2018] [so:warn] [pid 16861] AH01574: module dav_module is already loaded, skipping

Cet article présente une modification possible pour éviter le message d'avertissement.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Etude

Afin de bien comprendre le fonctionnement, il est nécessaire d'étudier la configuration des différents modules activés. Les modules sont activés à l'aide de lien dans le répertoire /etc/apache2/mods-enabled, pointant sur les définitions dans /etc/apache2/mods-available.

La première commande va permettre de rechercher les modules impliqués dans le chargement de mod_dav.

#sudo grep mod_dav /etc/apache2/mods-enabled/*
/etc/apache2/mods-enabled/authz_svn.load:<IfModule !mod_dav_svn.c>
/etc/apache2/mods-enabled/dav.load:#LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
/etc/apache2/mods-enabled/dav.load:<IfModule !mod_dav.c>
/etc/apache2/mods-enabled/dav.load:    LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
/etc/apache2/mods-enabled/dav_svn.load:<IfModule !mod_dav_svn.c>
/etc/apache2/mods-enabled/dav_svn.load:    <IfModule !mod_dav.c>
/etc/apache2/mods-enabled/dav_svn.load:    LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

Le fichier /etc/apache2/mods-available/authz_svn.load contient la configuration suivante.

# Depends: dav_svn
<IfModule !mod_dav_svn.c>
    Include mods-enabled/dav_svn.load
</IfModule>
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Si le module mod-dav_svn n'est pas déjà activé, le fichier /etc/apache2/mods-enabled/dav_svn.load, lien vers /etc/apache2/mods-available/dav_svn.load, est chargé avec le contenu suivant.

# Depends: dav
<IfModule !mod_dav_svn.c>
    <IfModule !mod_dav.c>
        Include mods-enabled/dav.load
    </IfModule>
    LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
</IfModule>

Si le module mod_dav n'est pas déjà activé, le fichier /etc/apache2/mods-enabled/dav.load, lien vers /etc/apache2/mods-available/dav.load, est chargé avec le contenu suivant.

#LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so

Cette configuration ne contient aucune vérification sur une possible activation préalable du module, comme dans le cas des deux précédents fichiers.


Configuration-icon.png Configuration

Afin de ne plus avoir de ne plus avoir de message, il suffit donc de rajouter un contrôle sur le chargement préalable du module en s'inspirant des déclarations faites dans authz_svn.load ou dav_svn.load. La vérification porte sur le module mod_dav.c.

Le fichier /etc/apache2/mods-enabled/dav.load est modifié ainsi.

#LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
<IfModule !mod_dav.c>
    LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
</IfModule>

Puis il suffit de recharger la configuration.

#sudo apache2ctl graceful


Viewer icon.png Voir aussi

Cette explication est inspirée de la réponse sur Stackoverflow: https://stackoverflow.com/questions/50231086/apache-on-ubuntu-module-dav-module-is-already-loaded