Ce mémo a été publié le 20 septembre 2015 et peut contenir des informations qui peuvent être incomplètes, non mises à jour voir erronées du fait de son ancienneté. N'hésitez pas à compléter votre recherche sur des articles plus récents.

Introduction

Le besoin est simple : avoir un serveur subversion (svn) pour gérer le versionning et le travail collaboratif sur les sources d’un site web ou d’un programme.

Ce tuto doit vous permettre de créer une machine virtuelle avec un serveur svn accessible via une url (ex : http://svn.jbnet.lan) dans votre réseau local.
Il ne couvre les aspects de la gestion de projets avec un logiciel de gestion de versions.
Uniquement sa mise en place technique.

Ce tuto fait parti d’un ensemble qui conduit à créer une infrastructure de serveurs web avec différents rôles : “[Tuto – Infrastructure Web – Debian 8] – Présentation et objectifs”.
Vous devez avoir préparé et cloné la machine gabarit pour continuer.
Voir “[Tuto – Infrastructure Web – Debian 8] – La machine gabarit” puis “[Tuto – Infrastructure Web – Debian 8] – Cloner et préparer la machine gabarit“.

Vous devez avoir des connaissances sur l’utilisation de Linux via une connexion SSH ainsi qu’une certaine aisance avec les commandes d’un shell Linux.

Comptez env. 1h de configuration en partant d’une VM fraichement clonée et paramétrée sur votre réseau.
… là encore, je suis large !

Modifications et mises à jour du document

20/09/2015 : Publication initiale

Avertissement

Cette machine est construite pour vous permettre de créer un serveur svn sur un réseau local.

Il ne faut en aucun cas lui donner un accès public à partir d’internet.

Par conséquent, vous êtes seul responsable si vous vous contentez de suivre ce tutoriel pour une mise en ligne d’un serveur web sur internet avec un accès public.

Vous voilà averti, passons aux choses sérieuses.

Installation

Il faut ajouter subversion et ses outils avec les modules mod_dav_svn et mod_authz_svn fournis par la librairie libapache2-svn :

J’active les modules Apache2 :

Création du site web

Dans l’exemple, je vais créer un site web http://svn.jbnet.lan qui sera le point d’entrée de mon serveur svn.
Le site sera hébergé dans le répertoire /home/svn-adm/svn.

Créer un utilisateur svn-adm :

Je positionne des variables avec les paramètres du site :

La création d’un hébergement avec la machine gabarit possédant le rôle de serveur web est décrite dans le paragraphe “Créer un hébergement web” du chapitre “[Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP“.

Pour faire vite, voici les commandes à copier/coller dans votre terminal avec une connexion ssh sur le serveur web :

Configuration Apache2 :

Configuration PHP5-FPM :

Et pour finir, on modifie le propriétaire des fichiers et on redémarre les services apache2 et php5-fpm :

A partir de là, si vous avez créer une VM autonome (voir « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« ), vous devez ajouter l’adresse ip de cette dernière et l’url svn.jbnet.lan dans votre fichier hosts pour y avoir accès.

Si vous avez créer une infrastructure web avec un serveur proxy et nginx en mode reverse proxy, vous devez créer la configuration nginx.
Sur le serveur proxy, créez le fichier /etc/nginx/sites-available/svn.jbnet.lan.
Adaptez les paramètres en fonction de votre configuration.

Puis créez un lien symbolique dans le répertoire /etc/nginx/sites-enabled :

Relancez nginx pour la prise en compte :

Dans votre fichier hosts, il faut ajouter l’ip du proxy associé à l’url du site svn.jbnet.lan.
Testez en utilisant l’url « http://svn.jbnet.lan/phpinfo.php » dans votre navigateur.

Création du premier dépôt

Un dépôt contient des projets. Je vais donc créer un dépôt pour mes projets en lien avec JBNet.fr.
Vous pouvez créer autant de dépôts que vous voulez pour séparer et organiser vos projets.

Créez les répertoires qui reçoivent les dépôts et les fichiers contenant la liste des utilisateurs autorisés :

Je vais ajouter une variable qui contient le nom du dépôt et une seconde pour l’utilisateur :

Créez et configurez le nouveau dépôt avec un accès par mot de passe :

La dernière commande demande de saisir le mot de passe de l’utilisateur.

Pour ajouter de nouveaux utilisateurs, il faut utiliser la même commande, mais sans le « -c ».
Sinon, le fichier ${myrepo}.passwd est écrasé.

Configuration Apache

A chaque dépôt créé, il faut modifier le fichier /home/${myuser}/${mywebsite}/conf/apache.conf en ajoutant ces lignes.
Remplacez les valeurs ${myrepo} et ${myuser} par vos valeurs.

Je modifie les droits de la configuration que je viens de créer avec root :

Pour la prise en compte du site, il faut relancer les services Apache2 et PHP5-FPM :

Le dépôt est accessible via l’url : http://svn.jbnet.lan/jbnet.fr en utilisant les paramètres de connexion configurés plus haut.

jbnet.fr - Revision 0: - - Mozilla Firefox_011

Il ne vous reste plus qu’à configurer votre logiciel de développement (comme NetBeans) pour utiliser votre svn fraichement installé.