Home / WebServer / Apache / HowTo: Subverison (SVN) Installation mit HTTP unter Debian Wheezy + Ubuntu
Subversion SVN

HowTo: Subverison (SVN) Installation mit HTTP unter Debian Wheezy + Ubuntu

Step-by-Step Anleitung zur Installation eines Subversion (SVN) Servers mit Apache Integration +  WebZugriff via WebDAV

Apache SVN ist eines der bekanntesten Open-Source Versionierungssysteme für Dateien und Ordner. Die Versionierung erfolgt dabei im Gegensatz zu GIT in einem zentralen Repository, welches in dieser Anleitung Schritt für Schritt installiert und erstellt wird.

Mittlerweile empfehle ich eigentlich GIT als Versionierungssystem, weil die Vorteile einer dezentralen Logik überwiegen, aber ein Kunde von uns möchte gerne SVN einsetzen und so legen wir einen neuen Server an. 😉

Abhängigkeiten und erforderliche Programme installieren

Folgende Voraussetzung sollte für den Betrieb von SVN installiert sein:

*) Apache Webserver (apt-get install apache2)

In folgendem Tutorial genauer beschrieben: LAMP Installation unter Debian Wheezy

Subversion installieren und Repository anlegen

Im ersten Schritt wird das subversion Programm via apt-get installiert:

[bash]apt-get update
apt-get install subversion[/bash]

Nach der Installation wird ein Ordner erstellt, wo die Repositories abgelegt werden (/var/svn)

[bash]mkdir /var/svn[/bash]

Nun kann auch schon das erste Repository im Ordner /var/svn/ angelegt werden. Ich verwende hierfür den Namen „meinprojekt“. Er kann natürlich nach belieben angepasst werden bzw. können mehrere Repos angelegt werden:

[bash]svnadmin create /var/svn/meinprojekt[/bash]

SVN mit dem Apache verbinden

Subversion ist nun als eine lokale Variante auf unserem Server installiert. Damit nun auch von extern auf das Service zugegriffen werden kann benötigen wir WebDAV auf dem Apache Webserver mit dem SVN Modul „libapache2-svn“.

[bash]apt-get install libapache2-svn[/bash]

Nach der Installation des Modul, wird dieses nun entsprechend konfiguriert. Dazu bearbeiten wir die Datei /etc/apache2/mods-available/dav_svn.conf mit dem Lieblingseditor und passen sie für unsere Bedürfnisse an.

[bash]vi /etc/apache2/mods-available/dav_svn.conf[/bash]

Inhalt:

[bash] <Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
[/bash]

Der URL String /svn wird nun auf unserer Repositories im Verzeichnis /var/svn gemappt.

[sam id=“2″ codes=“true“]

Subversion WebDAV Benutzer anlegen

Als Authentifizierung dient die Datei /etc/apache2/dav_svn.passwd, welche als User Datenbank verwendet wird. Die Datei wird folgendermaßen erstellt. Dabei wird der Benutzer „meinuser“ angelegt. Dieser kann natürlich wieder frei gewählt werden:

[bash]htpasswd -c /etc/apache2/dav_svn.passwd meinuser[/bash]
Den htpasswd Befehl mit -c (create) nur beim Erstellen der Datei verwenden. Um einen Weiteren Benutzer hinzuzufügen den Befehl ohne -c verwenden.

Weitere Benutzer hinzufügen:

[bash]htpasswd /etc/apache2/dav_svn.passwd deinuser[/bash]

Berechtigungen für das SVN Verzeichnis richtig setzen:

[bash]chown www-data:www-data /var/svn -R[/bash]

Apache Webserver neu starten:

[bash]/etc/init.d/apache2 restart[/bash]

Zugriff auf das SVN Repository

Zugriff via Browser (Webinterface)

[bash]http://meinedomain/svn/meinprojekt[/bash]

SVN Webinterface Installation

Zugriff via Subversion Client (Versions für Mac)

MAC SVN Client Versions

Subversion (SVN) Zugriff via Subdomain:

Damit das SVN Repository nicht nur via „hostname/svn“ erreichbar ist sondern auch direkt via Subdomain (svn.domain.com) aufgerufen werden kann ist eine Anpassung der Apache Konfiguration nötig. Der Eintrag von /etc/apache2/mods-available/dav_svn.conf wird direkt in die vhost Config des Webservers übernommen:

zB: /etc/apache2/sites-available/default

Inhalt:

[bash]<VirtualHost *:80>
ServerName svn.sysadminslife.com
DocumentRoot /var/svn
<Location />
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>[/bash]

Apache neu starten

[bash]/etc/init.d/apache2 restart[/bash]

Der Aufruf funktioniert nun direkt auf die Subdomain:

[bash]http://svn.sysadminslife.com/meinprojekt[/bash]
4/5 - (10 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

5 Kommentare

  1. Wie kann man heutzutage noch subversion nutzen? Warum nicht Git oder zumindest Bazaar (letzteres wegen der einfachen Bedienbarkeit)?

  2. Hi,

    ich hab noch einen fehler entdeckt. Du musst beim Mappen des Verzeichnis auf mappen , nicht auf . Dann geht es auf Anhieb (ubuntu Server mit der aktuellen apache2 Version )