Freitag, 5. Juni 2009 um 22:56 Uhr
Subversion Server unter Debian Lenny einrichten
Seit längerer Zeit hatte ich den Plan mir eine Quellcode-Verwaltung zu installieren. Da CVS mittlerweile doch schon etwas antiquiert ist und nicht mehr weiterentwickelt wird, habe ich mich hierzu für Subversion entschlossen. Wie sich Subversion unter Debian Lenny einrichten lässt, möchte ich Euch hier nun näher beschreiben.
Bei meinem Subversion Server habe ich mich entschlossen, die Authentifizierung über den Apache mit Hilfe des dav-Moduls zu realisieren.
Installation
Als erstes müssen die benötigten Pakete installiert werden:
1 | aptitude install subversion apache2 libapache2-svn |
Konfiguration
Nun muss man das Subversion Verzeichnis für die Repositories erstellen und für den Apache Benutzer www-data lese- und schreibbar machen.
1 2 | sudo mkdir /var/svn sudo chown -R www-data:www-data /var/svn |
Das Verzeichnis muss nicht zwingend /var/svn sein und kann beliebig geändert werden.
Server mit SSL absichern
Will man den Subversion Server absichern, so kann man dies mit SSL tun. Hat man den Apache Server schon vorher für https eingerichtet oder will den Subversion Server nicht absichern, so können die nächsten Schritte entfallen.
OpenSSL installieren und das Apache Modul aktivieren:
1 2 | aptitude install openssl ssl-cert a2enmod ssl |
Der /etc/apache2/ports.conf, wenn nicht vorhanden, dies hinzufügen:
1 2 3 | <IfModule mod_ssl.c> Listen 443 </IfModule> |
Nun muss eine Konfiguration für den Virtualhost mit SSL eingerichtet werden. Dazu kann man einfach die Standart Konfiguration kopieren und anpassen:
1 | cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl.domain.tld |
Nun muss in der neuen Datei
1 | <VirtualHost *:80> |
mit
1 | <VirtualHost *:443> |
ersetzt werden. Und oberhalb von
1 | </VirtualHost> |
dies eingefügt werden:
1 2 | SSLEngine on SSLCertificateFile /etc/apache2/ssl/ssl.domain.tld.pem |
Danach muss man das SSL-Zertifikat erstellen:
1 2 | mkdir /etc/apache2/ssl make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/ssl.domain.tld.pem |
Schließlich muss die neue Site noch aktiviert werden.
1 2 | a2ensite ssl.new.site /etc/init.d/apache2 reload |
Eure Konfiguration könnt Ihr testen, indem Ihr https://domain.tld in Euren Browser eingebt.
Einrichten des Apache Moduls dav_svn
Zum Einrichten von dav_svn, muss die Datei /etc/apache2/mods-available/dav_svn.conf zwischen den Location-Tags, folgendermaßen ergänzt werden:
1 2 3 4 5 6 7 8 9 | DAV svn SVNParentPath /var/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user SSLRequireSSL # this line must be added if you want SSL enabled |
Danach kann das Modul aktiviert werden:
1 2 | a2enmod dav_svn /etc/init.d/apache2 restart |
Jetzt muss noch ein Benutzer für DAV eingerichtet werden. Der erste Benutzer wird so eingerichtet:
1 | htpasswd -c /etc/apache2/dav_svn.passwd benutzer1 |
Weitere Benutzer so:
1 | htpasswd /etc/apache2/dav_svn.passwd benutzer1 |
Erstes Repository erstellen
Jetzt kann man das erste Subversion Repository erstellen:
1 2 | svnadmin create /var/svn/test chown -R www-data:www-data /var/svn/test |
Ein Checkout kann so gemacht werden:
1 | svn co https://domain.tld/svn/test |
Ich hoffe meine Anleitung hat Euch ein Stück weit geholfen. Über Kommentare und Verbesserungsvorschläge freue ich mich jeder Zeit.
Tags: Debian, Lenny, Linux, Server, Subversion












13. Juni 2009 um 11:37
[...] schon geschrieben, habe ich mir einen Subversion Server eingerichtet. Dieser erfüllt mittlerweile schon bestens seine Dienste. Da ich aber nicht nur auf [...]
24. Juni 2009 um 21:51
thanks
25. Juni 2009 um 12:07
hi, bin grad deinem tutorial gefolgt. funzt allet wie’s soll, danke!
eine frage hab ich jedoch: wie kann pro svn-repo eine nutzerliste definieren`?
26. Juni 2009 um 20:16
Der Part mit “DAV svn” muss mit
umschlossen sein
29. Juni 2009 um 17:38
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL # this line must be added if you want SSL enabled
Sollte es nicht so ausehn ?
29. Juni 2009 um 17:39
mit klammern location davor und danach
29. Juni 2009 um 19:16
@Alex: Darum steht auch “zwischen den Location-Tags” über dem Code-Snippet
@Mike: Also bei mir gehts ohne “. Würde mich auch sehr wundern, wenn es das braucht.
01. Juli 2009 um 23:04
danke für das tut, habs glei getestet udn funzt soweit alles, allerdings würd ich gern das einsehen des svn verzeichnisses per htaccess schützen, also das man username und pw brauch um per web in das svn repo zu guggen
habs mit htaccess schon probiert, aber apache ignoriert das iwi immer, bin so langsam ratlos, hat da wer ne idee oder n tip?
08. Juli 2009 um 17:04
$ sudo a2enmod ssl
muss bei einem Apachen mit einer Version größer als 2 gemacht werden, damit der apache auch ssl aktiviert, sonder startet er nicht durch.
zum HTaccess würde ich mal das overwrite in der vhost datei prüfen.
14. Juli 2009 um 18:13
Eigenes, selbst signiertes SSL Zertifikat? Nimm doch ein kostenloses von cacert (www.cacert.org)!
07. November 2009 um 15:42
HI!
danke für dein Tut, hat besten geklappt.
21. Januar 2010 um 17:05
Super! So muss eine Anleitung sein – hat alles auf Anhieb geklappt!
28. Januar 2010 um 19:13
Wer mehr Kontrolle haben will(z.B. SVN nur über Subdomain ansprechen), kann auch sie dav_svn.conf leer lassen und statt dessen einen VHost erstellen.
etwa so:
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
02. April 2010 um 13:58
Hat super funktioniert, vielen Dank!
16. Juni 2010 um 18:39
Hi,
klasse Anleitung, funktioniert wunderbar, danke!
06. August 2010 um 17:05
Besten Dank für diese töfte Anleitung – so kann man arbeiten
!