Ce guide explique comment installer et configurer un serveur de référentiel WebDAV SVN (subversion) accessible à l'aide d'Apache et d'un VPS CentOS. Qu'est-ce que SVN ? Il s'agit d'un système de contrôle de version centralisé open source, qui peut suivre et stocker l'historique des fichiers et des répertoires dans ses référentiels avec la possibilité d'examiner l'historique de la façon dont les données ont changé et, si nécessaire, de récupérer certaines anciennes versions des données.
Pour ce tutoriel, nous utilisons un VPS basé sur CentOS 6, mais l'installation et la configuration d'un serveur de référentiel SVN accessible via HTTP en utilisant le protocole WebDAV est presque la même sur n'importe quel autre VPS basé sur Linux.
1. En supposant que vous disposez des privilèges "root", exécutez la commande suivante afin de mettre entièrement à jour votre système et d'installer les packages nécessaires.
# yum -y mettre à jour &&yum -y installer mod_dav_svn subversion
Ensuite, nous allons créer et configurer les utilisateurs et les référentiels subversion.
# htpasswd -cm /etc/svn_htpasswd user1
il créera l'utilisateur 'user1' et créera le ‘/etc/svn_htpasswd’ fichier qui contiendra les noms d'utilisateur svn avec leurs mots de passe cryptés.
(pour créer des utilisateurs svn supplémentaires, vous devez omettre le commutateur "-c" de htpasswd, par exemple :
# htpasswd -m /etc/svn_htpasswd user2
# mkdir /var/www/repos# svnadmin create /var/www/repos/test_repo1# svnadmin create /var/www/repos/test_repo2# chown -R apache :/var/www/repos/
Afin que les référentiels soient accessibles via HTTP, nous devons configurer le fichier de configuration apache subversion.
# cat /etc/httpd/conf.d/subversion.confLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.soDAV svn SVNParentPath /var/www/repos AuthType Basic AuthName "Référentiels Subversion" AuthUserFile /etc/svn_htpasswd Nécessite un utilisateur valide AuthzSVNAccessFile /etc/svn_acl
redémarrez ensuite le serveur Web apache, afin que les modifications puissent prendre effet. Exécutez la commande suivante pour recharger apache :
# redémarrage du service httpd
( si vous obtenez quelque chose comme ceci : 'mod_dav_svn.so:undefined symbol:dav_register_provider' , alors vous devrez probablement activer le 'mod_dav.so ‘ et ‘mod_dav_fs.so ‘ modules apache dans son fichier de configuration principal ‘/etc/httpd/conf/httpd.conf’ )
# cat /var/www/repos/test_repo1/conf/svnserve.conf[general][sasl]## Désactiver l'accès anonyme ##anon-access =none## Activer le contrôle d'accès ##authz-db =authz
6. Créez la liste d'accès SVN, afin que nous puissions attribuer différents niveaux d'accès aux utilisateurs. Par exemple :
# cat /etc/svn_acl[groups]group1 =user1group2 =user2group3 =user3, user4[/]* =r@group1 =rwuser1 =rw[test_repo1:/]@group1 =rw@group2 =[test_repo1:/static ]@group2 =r[test_repo2:/public]@group3 =rwuser2=r
7. Enfin, créez une structure de référentiel « statique », « documentation » et « code » sous le référentiel « test_repo1 ». Créez des répertoires "modèles" avec la commande suivante :
# mkdir -p /tmp/test_repo1/{code,static,documentation}Une fois créés, vous pouvez importer les répertoires dans le référentiel "test_repo1" en exécutant la commande suivante :
# svn import -m 'Test ...' /tmp/test_repo1/ http://votredomaine.tld/repos/test_repo1/Vous pouvez maintenant accéder au référentiel SVN nouvellement créé via le protocole HTTP sur 'http://votredomaine.tld/repos/test_repo1/' . Une fenêtre d'autorisation apparaîtra où vous devrez vous connecter avec l'utilisateur svn approprié.
PS. Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.