Mettre en place un serveur Subversion avec Apache2 + WebSVN
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
6 commentaires pour “Mettre en place un serveur Subversion avec Apache2 + WebSVN”