Salut à tous,
Aujourd'hui, un billet différent car il s'agira d'un tutorial sur l'installation de subversion avec apache sur une archlinux.
Ce billet est en outre le premier que je considère comme un tuto (qui fait donc apparaitre la section tuto sur ce blog qui devient un peu un gros bouzin depuis 2 jours :P
Pourquoi un tel billet ? Car je n'ai pas trouvé mon bonheur sur le web francophone et que j'ai trouvé l'installation bien différente de ce que j'ai connu sur debian.
En effet, mes serveurs étant sur debian, mon "niveau" d'admin sys est plus poussé pour cette distrib'. Mes pc perso (desktop et laptop) tournant eux sur archlinux.
Comme j'ai voulu autohéberger pour le moment les dépôts de mes projets (et des futurs sites associés), j'ai du apprendre à faire fonctionner tout ça sur archlinux ^^.
Pour preuve, mes fichiers de configuration sont maintenant gérés par svn et consultables ici
Donc comment tout ça fonctionne ?
Tout d'abord, installons le nécessaire
pacman -S subversion apache
Créer un répertoire ou vous sauvegarderez vos dépots.
Personnellement, je les ai mis dans /srv/svn
mkdir /srv/svn/
Créer le repository (le projet en gros) :
svnadmin /srv/svn/monZolieProjet
Configurer Apache :
Il suffit de charger les bons modules, à savoir
Pour cela, il vous suffit d'avoir dans votre /etc/httpd/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Configurer un vhost
décochez la ligne permettant d'utiliser le fichier de conf des vhost dans /etc/httpd/conf/httpd.conf :
Include conf/extra/httpd-vhosts.confPuis dans /etc/httpd/conf/extra/httpd-vhosts.conf :
<VirtualHost *:80>
ServerName yourdomaine.net
<Location /monZolieProjet>
DAV svn
SVNPath /srv/svn/monZolieProjet
AuthzSVNAccessFile /srv/svn/auth
AuthName "SVN Repositories"
AuthType Basic
AuthUserFile /srv/svn/pass
Satisfy Any
Require valid-user
</Location>
</VirtualHost>Vous pouvez rajouter des <Location /nomDeProjet> pour chaque répo :)
Vous pouvez aussi les mettre chacun dans des vhosts différents si jamais vous avez un domaine par projet.
Un conseil qui peut paraître idiot mais qui ma bien fait perdre 30 minutes :
Ne nommez un répo du même nom qu'un répertoire dans votre répertoire par défaut de apache.
Sous archlinux, ce répertoire est /srv/http mais est configurable dans le httpd.conf. Sous debian, il s'agit de /var/www par exemple.
Par exemple j'ai voulu mettre un répertoire pmfs dans /srv/http pour le site de pmfs (à venir) et pmfs comme nom de répo, et du coup le svn marchait pas car apache ne savait pas s'il fallait prendre le répertoire dans /srv/http ou le répo... bref, jvous le dis au cas car c'est un problème bête qui peut faire perdre du temps ^^
Pour l'utilisation du ssl, reportez vous au wiki
Les droits sur vos repo :
Vous pouvez gérer les droits de vos répo simplement par deux fichiers. Un fichier pour les mots de passe des utilisateurs et un pour les droits sur les répo.
Le fichier de mot de passe (vous pouvez l'appelez comme bon vous semble, ici il sera nommé auth) :
mkdir /srv/svn/authLe fichier :
[groups]
[monZolieProjet:/]
myUser = rw
* = r
On voit dans ce fichier que l'on peut créer des groupes. Les groupes permettent de regrouper vos utilisateurs dans un même groupe afin leur donner les mêmes droits sans se répéter. Ici, on peut voir que je n'ai pas créer de groupe mais que j'ai affecter à mon projet les droits en lecture et écriture à myUser et à tous les autres les droits de lecture.
Les droits peuvent être plus poussé, comme par exemple donner les droits d'écriture à des répertoires précis
[monZolieProjet:/doc]
* = rwCes lignes permettront à tous les utilisateurs d'écrire dans le répertoire doc du projet.
On peut faire beaucoup plus mais vous trouverez des docs poussées sur la toile ;).
Le fichier de mot de passe (ici appelé pass dans /srv/svn) :
htpasswd -cs /srv/svn/pass myUser
le -c n'est à mettre QUE la 1ere fois!. En effet, il permet de créer le fichier. Si vous voulez ajouter un utilisateur :
htpasswd -s /srv/svn/pass USER
Sinon, les précédents utilisateurs seront effacés.
Donner les droits à appache :
chown -R httpd:httpd /srv/svn/
Démarrer le projet :
Créer les répertoires branches trunk tags
cd temp/ && mkdir branches tags trunkimporter les sources :
cp -r /chemin/source/* temp/trunk/
svn import -m "Initial import" http://yourdomain.net/monZolieProjet
Vous pourrez récupérer les sources en faisant :
svn co http://yourdomaine.net/monZolieProjet/Pour plus d'info, lisez la doc subversion ;)
Recent comments
43 weeks 5 days ago
49 weeks 6 days ago
49 weeks 6 days ago
1 year 7 weeks ago
1 year 8 weeks ago
1 year 10 weeks ago
1 year 22 weeks ago
1 year 22 weeks ago
1 year 22 weeks ago
1 year 22 weeks ago