4 203
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(6 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:serveur]] | |||
[[Category:debian]] | [[Category:debian]] | ||
'''<span style="color: red;">Tuto plus vraiment à jour</span>''' | |||
[[Category:toupdate]] | |||
Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. | Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. | ||
Ce howto va vous montrer comment mettre en place un dépot subversion. | Ce howto va vous montrer comment mettre en place un dépot subversion. | ||
Le domaine utilisé est <code>svn.pfoo. | Le domaine utilisé est <code>svn.pfoo.domain.tld</code> qui est un alias pour <code>srv.domain.tld</code>. | ||
<code> | <code>srv.domain.tld</code> est le domaine identifiant le serveur sur lequel se trouvera le dépôt subversion. Il possède l'adresse ipv4 <code>213.186.47.110</code> et l'adresse ipv6 <code>2001:41d0:1:d6e::110</code>. | ||
Ce howto est construit de manière à respecter mon howto sur apache2. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027 | Ce howto est construit de manière à respecter mon howto sur apache2. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027 | ||
Ligne 13 : | Ligne 18 : | ||
<pre>aptitude install subversion subversion-tools</pre> | <pre>aptitude install subversion subversion-tools</pre> | ||
On peut maintenant créer le dépôt subversion. Dans mon cas, je vais le créer dans < | On peut maintenant créer le dépôt subversion. Dans mon cas, je vais le créer dans <code>/srv/http/domain.tld/pfoo.domain.tld/svn/</code> | ||
<pre>svnadmin create /srv/http/ | <pre>svnadmin create /srv/http/domain.tld/pfoo.domain.tld/svn/</pre> | ||
Le dépôt | Le dépôt devra être accessible par apache en lecture ainsi qu'en écriture : | ||
<pre> | <pre> | ||
chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/svn/db/ | |||
chmod -R g+w /srv/http/ | mkdir -p /srv/http/domain.tld/pfoo.domain.tld/svn/dav/activities.d | ||
chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/svn/dav/ | |||
chown -R root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn/ | |||
</pre> | </pre> | ||
Gardez à l'esprit que apache doit pouvoir exécuter (permission +x) tous les dossiers en amont de <code>/srv/http/ | Gardez à l'esprit que apache doit pouvoir exécuter (permission +x) tous les dossiers en amont de <code>/srv/http/domain.tld/pfoo.domain.tld/svn/</code>. | ||
=Ajout de la redirection dans la zone dns de bind= | =Ajout de la redirection dans la zone dns de bind= | ||
Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/ | Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/domain.tld.hosts</code> dans mon cas) et ajoutez les lignes suivantes : | ||
<pre> | <pre> | ||
srv.domain.tld. IN A 213.186.47.110 | |||
srv.domain.tld. IN AAAA 2001:41d0:1:d6e::110 | |||
svn.pfoo IN CNAME | svn.pfoo IN CNAME srv.domain.tld. | ||
</pre> | </pre> | ||
Ligne 60 : | Ligne 67 : | ||
==Configuration d'une vhost== | ==Configuration d'une vhost== | ||
Éditez le fichier <code>/etc/apache2/vhosts/svn.pfoo. | Éditez le fichier <code>/etc/apache2/vhosts/svn.pfoo.domain.tld.conf</code> et ajoutez y les lignes suivantes: | ||
<pre><nowiki> | <pre><nowiki> | ||
<VirtualHost 213.186.47.110:80> | <VirtualHost 213.186.47.110:80> | ||
ServerName svn.pfoo. | ServerName svn.pfoo.domain.tld | ||
Include sites/svn.pfoo. | Include sites/svn.pfoo.domain.tld.conf | ||
</VirtualHost> | </VirtualHost> | ||
<VirtualHost [2001:41d0:1:d6e::110]:80> | <VirtualHost [2001:41d0:1:d6e::110]:80> | ||
ServerName svn.pfoo. | ServerName svn.pfoo.domain.tld | ||
Include sites/svn.pfoo. | Include sites/svn.pfoo.domain.tld.conf | ||
</VirtualHost> | </VirtualHost> | ||
</nowiki></pre> | </nowiki></pre> | ||
Ligne 75 : | Ligne 82 : | ||
On peut maintenant créer le fichier de configuration du virtualhost. | On peut maintenant créer le fichier de configuration du virtualhost. | ||
Ouvrez le fichier <code>/etc/apache2/sites/svn.pfoo. | Ouvrez le fichier <code>/etc/apache2/sites/svn.pfoo.domain.tld.conf</code> avez votre éditeur de texte et ajoutez les lignes suivantes: | ||
<pre> | <pre> | ||
#Cette ligne est a décommenter si vous n'arrivez pas à utiliser les commandes copy et move de subversion en vous connectant en https: | #Cette ligne est a décommenter si vous n'arrivez pas à utiliser les commandes copy et move de subversion en vous connectant en https: | ||
Ligne 83 : | Ligne 90 : | ||
DAV svn | DAV svn | ||
# chemin complet vers le dépôt SVN | # chemin complet vers le dépôt SVN | ||
SVNPath /srv/http/ | SVNPath /srv/http/domain.tld/pfoo.domain.tld/svn/ | ||
#On sécurise le tout par mot de passe. | #On sécurise le tout par mot de passe. | ||
# htpasswd permettra de créer facilement le fichier | # htpasswd permettra de créer facilement le fichier | ||
AuthType Basic | AuthType Basic | ||
AuthName "pfoo's SVN" | AuthName "pfoo's SVN" | ||
AuthUserFile /srv/http/ | AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd | ||
Require valid-user | Require valid-user | ||
# fichier de configuration des permissions du dépot | # fichier de configuration des permissions du dépot | ||
AuthzSVNAccessFile /srv/http/ | AuthzSVNAccessFile /srv/http/domain.tld/pfoo.domain.tld/svn.perm | ||
</location> | </location> | ||
</nowiki></pre> | </nowiki></pre> | ||
Ligne 100 : | Ligne 107 : | ||
Nous allons créer un utilisateur pfoo ayant tous les droits sur le dépôt, et un utilisateur jonass n'ayant que des droits limités. Comme d'habitude, on préfèrera crypter les mots-de-passes en SHA (option -s) | Nous allons créer un utilisateur pfoo ayant tous les droits sur le dépôt, et un utilisateur jonass n'ayant que des droits limités. Comme d'habitude, on préfèrera crypter les mots-de-passes en SHA (option -s) | ||
<pre> | <pre> | ||
htpasswd -cs /srv/http/ | htpasswd -cs /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd pfoo | ||
htpasswd -s /srv/http/ | htpasswd -s /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd jonass | ||
</pre> | </pre> | ||
On donne les bonnes permissions au fichier contenant les utilisateurs: | On donne les bonnes permissions au fichier contenant les utilisateurs: | ||
<pre>chown root:www-data /srv/http/ | <pre>chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd</pre> | ||
On peut maintenant créer le fichier contenant les accès des deux utilisateurs. Ouvrez le fichier <code>/srv/http/ | On peut maintenant créer le fichier contenant les accès des deux utilisateurs. Ouvrez le fichier <code>/srv/http/domain.tld/pfoo.domain.tld/svn.perm</code> et entrez y les lignes suivantes: | ||
<pre> | <pre> | ||
[groups] | [groups] | ||
Ligne 122 : | Ligne 129 : | ||
Comme d'habitude, changer l'appartenance du fichier: | Comme d'habitude, changer l'appartenance du fichier: | ||
<pre>chown root:www-data /srv/http/ | <pre>chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn.perm</pre> | ||
=Le moment de vérité= | =Le moment de vérité= | ||
Ligne 141 : | Ligne 148 : | ||
Pour réaliser votre backup avec <code>svn-backup-dumps</code> : | Pour réaliser votre backup avec <code>svn-backup-dumps</code> : | ||
<pre>svn-backup-dumps /srv/http/ | <pre>svn-backup-dumps /srv/http/domain.tld/pfoo.domain.tld/svn/ /root/backup/</pre> | ||
Pour restaurer un backup, il faut utiliser <code>svnadmin</code> : | Pour restaurer un backup, il faut utiliser <code>svnadmin</code> : | ||
<pre>svnadmin load /srv/http/ | <pre>svnadmin load /srv/http/domain.tld/pfoo.domain.tld/svn/ < /root/backup/sauvegarde.svndmp</pre> | ||
=Supprimer les anciennes révisions= | =Supprimer les anciennes révisions= | ||
Ligne 152 : | Ligne 159 : | ||
Dans mon cas, je ne souhaite conserver que les 10 dernières révisions et je suis à la révision 453 : | Dans mon cas, je ne souhaite conserver que les 10 dernières révisions et je suis à la révision 453 : | ||
<pre> | <pre> | ||
svnadmin dump /srv/http/ | svnadmin dump /srv/http/domain.tld/pfoo.domain.tld/svn/ -r 443:head > repository-443-head.dump | ||
rm -rf /srv/http/ | rm -rf /srv/http/domain.tld/pfoo.domain.tld/svn/ | ||
svnadmin create /srv/http/ | svnadmin create /srv/http/domain.tld/pfoo.domain.tld/svn/ | ||
svnadmin load /srv/http/ | svnadmin load /srv/http/domain.tld/pfoo.domain.tld/svn/ < repository-443-head.dump | ||
------ Nouvelle révision 11 propagée (commit), basée sur révision 453 | ------ Nouvelle révision 11 propagée (commit), basée sur révision 453 | ||
</pre> | </pre> |