Dans cet article, je vais détailler la marche à suivre pour mettre en place un gestionnaire de version Subversion (SVN) avec Apache2 sur un système Debian 6 alias Squeeze.

Sommaire

  • Installation des paquets
  • Mise en place des dépôts
  • Gestion des droits sur les dépôts
  • Configurer Apache2 avec dav_svn
  • Ajouter une connexion sécurisée SSL (Optionnel)
  • Installer WebSvn
  • Configurer apache pour WebSvn

Installation des paquets

Tout d’abord nous allons installer les paquets nécessaires :

root@debian:~# apt-get install apache2 subversion subversion-tools libapache2-svn php5

Mise en place des dépôts

Nous allons continuer en créant des nouveaux repository SVN. Pour ça, nous considérerons 2 dépôts Projet1 et Projet2 qui seront situés respectivement dans /svn/repos/Projet1 et /svn/repos/Projet2.

Il faut d’abord créer un dossier qui contiendra tous nos dépôts :

root@debian:~# mkdir -p /svn/repos

Puis on crée nos dépôts :

Le premier :

root@debian:~# svnadmin create /svn/repos/Projet1

Et le second :

root@debian:~# svnadmin create /svn/repos/Projet2

Gestion des droits

Dans cette partie nous allons créer les fichiers nécessaires pour sécuriser vos repositories. Tout d’abord, un fichier qui contiendra les noms d’utilisateurs et les mots de passe des personnes ayant accès aux repositories :

root@debian:~# mkdir /svn/config
root@debian:~# cd /svn/config
root@debian:~# htpasswd -c authz utilisateur1
root@debian:~# htpasswd authz utilisateur2

Ensuite pour avoir une gestion plus fine des droits d’accès créer un fichier svnAccessFile, voici un exemple de configuration pour ce fichier :

[groups]
admin = utilisateur1
devTeam1 = utilisateur1,utilisateur2
[/]
admin = rw
[Projet1:/]
@devTeam1 = rw
[Projet2:/]
utilisateur2 = rw

Configurer Apache2 avec dav_svn

Maintenant il faut configurer Apache pour que les dépôts soit accessibles . Commençons par créer un virtual host et ajoutons dedans la configuration du module dav_svn.

donc :

root@debian:~# vi /etc/apache2/sites-available/svn

et :

<VirtualHost *:443>
        ServerName svn.exemple.com
        SSLEngine on
        SSLCertificateFile /etc/apache2/cert/exemple.cert
        SSLCertificateKeyFile /etc/apache2/cert/exemple.key
        SSLCACertificateFile  /etc/apache2/cert/exemple.chain
        SSLProtocol all
        SSLCipherSuite HIGH:MEDIUM
        <Location /repos/>
               DAV svn
               SVNParentPath /svn/repos
               SVNListParentPath on
               AuthType Basic
               AuthName "Subversion Repository"
               AuthUserFile /svn/config/authz
               Require valid-user
               AuthzSVNAccessFile /svn/config/svnAccessFile
        </Location>
</VirtualHost>

Pour rendre votre dépôt accessible, vous devez créer un lien symbolique dans /etc/apache2/sites-enabled/svn. Pour cela il existe une commande apache :

root@debian:~# a2ensite svn
root@debian:~# service apache2 restart

Installer WebSvn

WebSvn est un explorateur web pour les dépôt Subversion simple à installer et facile d’utilisation. Vous pouvez le configurer pour suivre les mêmes règles d’accès que vos dépôts svn, c’est d’ailleurs cette configuration que je vais détailler dans la suite de ce tutoriel.

Commençons par télécharger WebSvn ici.

Puis il faut décompresser l’archive :

root@debian:~# mkdir /svn/websvn
root@debian:~# cd /svn/websvn
root@debian:~# tar -zxvf WebSVN 2.3.2.tar.gz

Il faut maintenant configurer WebSvn avec notre installation actuelle, pour celà il faut éditer le fichier de configuration de WebSvn :

root@debian:~# vi /svn/websvn/include/config.php

Dé-commentez les lignes suivantes :

$config->parentPath('/svn/repos'); // Chemin vers les dépôts
$config->useAuthenticationFile('/svn/config/svnAccessFile');// Fichier de gestion d'accès

Configuration d’Apache pour WebSvn