Activer les modules apache nécessaires
Pour servir le contenu nous avons besoin d’activer le module svn
pour apache.
On installe le module au préalable si ce n’est déjà fait :
- apt-get install libapache2-svn
Sur Debian Stretch (9.x) les noms de paquets sont différents :
- apt-get install libapache2-mod-svn
Puis on active les modules nécessaires :
- sudo a2enmod dav
- sudo a2enmod dav_fs
- sudo a2enmod dav_lock
- sudo a2enmod dav_svn
Vous trouverez un exemple de configuration d’apache concernant svn dans /etc/apache2/mods-available/dav_svn.conf
Configuration du virtualhost pour apache
On va créer un nouveau fichier dans les sites-available d’apache qui configurera la mise à disposition de notre dépôt :
- sudo nano /etc/apache2/sites-available/svn.conf
Tous nos dépôts sont dans le même répertoire, on active donc svn de cette manière, ceci est le contenu minimum pour chaque virtualhost servant un dépot subversion (NB : il est nécessaire de recopier ceci et de le modifier pour chaque virtualhost souhaité) :
- <VirtualHost *:80>
- ServerAdmin admin@domaine.example
- ServerName svn.domaine.example
- # SVN n'est accessible que sur /svn
- <Location /svn>
- DAV svn
- SVNPath /var/svn/domaine.example
- # our access control policy
- # try anonymous access first, resort to real
- # authentication if necessary.
- # how to authenticate a user
- AuthType Basic
- AuthName "Subversion repository"
- AuthUserFile /var/svn/domaine.example/conf/passwd
- Satisfy Any
- AuthzSVNAccessFile /var/svn/domaine.example/conf/authz
- Require valid-user
- </Location>
- </VirtualHost>
Il est nécessaire qu’Apache ait accès à l’ensemble du dépot ... donc pour en être sûr... lancer la commande :
- sudo chown -Rvf www-data:www-data /var/svn/domaine.example
Enfin on active tout cela et relance Apache :
Sur Debian Stretch :
- sudo a2ensite svn
- sudo /etc/init.d/apache2 restart
Sur des versions plus anciennes :
- sudo a2ensite svn.conf
- sudo /etc/init.d/apache2 restart
Le dépot est alors accessible dans un navigateur à l’adresse : http://svn.domaine.example/svn
. Une boite de dialogue demandant nom d’utilisateur et mot de passe s’affiche si vous n’avez pas autorisé la lecture lors de la configuration du dépot. Vous devriez voir s’afficher : svn - Revision 0: /
si tout s’est passé correctement.
Si oui, votre serveur svn est utilisable. Vous pouvez donc faire un checkout du dépot dans le répertoire local domaine.example
:
- svn co http://svn.domaine.example/svn/ domaine.example
Y ajouter un un répertoire de test par exemple :
- cd domaine.example
- mkdir repertoire_test
- svn add repertoire_test
- svn commit -m "un répertoire de test"