SVN sous Apache

De EjnTricks

Le serveur de source SVN peut être exposé sous Apache. Cet article est inspiré de la documentation officiel de Ubuntu: http://doc.ubuntu-fr.org/subversion#serveur_svn_seul. Exposer les repositories derrière Apache permet de remplacer l'utilisation de svnserve.

Hand-icon.png Votre avis

Current user rating: 99/100 (1 votes)

 You need to enable JavaScript to vote


Process-Icon.png Activation du module libapache2-svn

#sudo apt-get install libapache2-svn

Il est nécessaire de recharger le serveur Apache:

#sudo apache2ctl graceful

Icon-Configuration-Settings.png Configuration

Modification du fichier dav_svn.conf

Dans cet exemple, la configuration est mise en place pour un repository individuel avec les hypothèses suivantes:

  • Emplacement du repository /var/opt/svn/study
  • Exposition sous l'URL /svn/study

Lors de l'installation, le fichier dav_svn.conf est déployé dans le répertoire /etc/apache2/mods-available et un lien est positionné dans le répertoire /etc/apache2/mods-enabled. Celui ci est modifié ainsi:

Ainsi:

  • La configuration <Location /svn/study> est responsable de la configuration de l'URL de base.
  • La configuration SVNPath /var/opt/svn/study permet d'indiquer l'emplacement root des sources.


Cependant, le paramétrage étant dans la configuration du module, cela s'applique à tous les sites hébergé sur le serveur Apache. Ainsi si des sous domaines sont mis en place, le serveur SVN sera visible.

Modification configuration site

Afin de présenter les sources sous un site en http sans authentification, et un accès sous https avec authentification (LDAP par exemple), il est préférable de modifier la configuration du site. Dans le cadre de cet article nous prendrons comme exemple:

  • Fichier /etc/apache2/sites-available/default, avec un lien /etc/apache2/sites-enables/000-default pour publier en http.
  • Fichier /etc/apache2/sites-available/default-ssl, avec un lien /etc/apache2/sites-enables/001-default-ssl pour publier en https.

Les configurations à mettre en place sont identiques aux modifications mises en place dans le fichier dav_svn.conf.

Dans le fichier /etc/apache2/sites-available/default, aucune information d'authentification n'est mise en place, donnant ainsi un libre accès aux sources stockées dans le répertoire /var/opt/svn/study

Attention, il est important de spécifier le paramètre AuthzSVNAccessFile, indiquant l'emplacement du fichier de définition des droits d'accès. Si cet élément est omis, alors les propriétés par défaut sont accordées aux utilisateurs accédant au dépôt, et donc en anonyme. Sur l'instance installée sous Ubuntu, ces permissions donnent un contrôle total, ce qui n'est pas acceptable.

Dans le fichier /etc/apache2/sites-available/default-ssl, une configuration sur LDAP est mise en place, donnant ainsi un libre avec authentification aux sources stockées dans le répertoire /var/opt/svn/study

Une fois mis en place, les sources sont disponibles sur les deux protocoles. Le lien sur /etc/apache2/mods-available/dav_svn.conf n'a plus lieu d'exister car les configurations sont mises en place sur chacun des sites déclarés:

#sudo rm /etc/apache2/mods-enabled/dav_svn.conf