SVN Server unter Debian Lenny / Ubuntu:

Für die Entwicklung ist eine Versionsverwaltung immer hilfreich.
Z.b. Subversion verhindert, das Entwickler die Änderungen anderer versehentlich überschreiben bzw. diese verloren gehen.

Einen SVN-Server aufzusetzen ist nicht besonders schwer, vorausgesetzt es besteht Rootzugriff.
Natürlich setzt die installation allgemeine Erfahrung in Serveradministration unter Linux und den sicheren Umgang mit der Shell voraus.
Es ist auch Vorsicht angebracht, denn es wird Software installiert (subversion) und die Apache-Konfiguration geändert.

Wie immer gilt: BACKUP !

1: Subversion installieren

apt-get install subversion

SVN-Modul für den Apache installieren (benötigt für WebDAV)

apt-get install libapache2-svn

ein SVN-Sever ist im normalfall über das SVN-Protokoll erreichbar
svn://meinserver/meinrepository/

Wenn eine Firewall dazwischen sitzt, kann sie das SVN-Protokoll blockieren.
Webdav ist hier eine Lösung.

webdav-Module aktivieren

a2enmod dav_fs
a2enmod dav

a2enmod empfiehlt nun den Apache neu zu starten, das ist hier aber noch nicht notwendig.

zunächst richten wir einen Ordner für den SVN-Server ein.
z.B. /var/svnroot/

mkdir /var/svnroot/

SVN-Server starten

svnserve -d -r /var/svnroot/

# -d damit der Server als deamon läuft und nicht gleich wieder beendet wird.
# -r bestimmt das Root-Directory für alle Repositories

Repo anlegen

svnadmin create /var/svnroot/test/

2: Zugang einrichten

Nun gilt es noch den Zugang zu definieren. Dazu werfen wir einen Blick in das “conf” Verzeichnis im Repository.

cd /var/svnroot/test/conf/

“passwd” ist die Datei für den Zugriff, allerdings nutzt diese unverschlüsselte Passwörter !

Beispiel: username = passwort

tragen wir hier ein:

testuser = testpasswort123

die Datei “svnserve.conf” bestimmt die allgemeinen zugriffsregeln für dieses Repository.
suchen wir hier die Zeile “#password-db = passwd” und kommentieren sie ein.

Es ist natürlich sinnvoll sich hier die anderen Rechte-Optionen anzusehen, denn:

VORSICHT:
Mit dieser ‘kurzen’ Konfiguration hat jeder lesenden Zugriff auf die Repositories !!!

Die eingegebenen Passwörter sind nur für ein Commit notwendig, also schreibenden Zugriff.

Ein kurzer Blick weiter oben zeigt die zeilen “anon-access = read” und “auth-access = write”
wenn wir diese einkommentieren und auf “anon-access = none” ändern, ist auch das korrigiert.

so.

jetzt können wir mit einem “svn co svn://meinserver/test/” die Daten auschecken.

3: Apache WebDAV

Als nächstes werfen wir einen Blick auf die Apache-Konfiguration.
Ich setze hier einen existierenden Virtual-Host vorraus, der für den SVN-Zugriff genutzt werden kann.

mit “/etc/init.d/apache2 restart” muss der Apache noch neu gestartet werden, da ja zuvor neue Module installiert wurden (dav_fs, dav)

IN den Virtualhost fügen wir dann folgende Konfiguration ein:

DAV svn
SVNPath /var/svnroot/test

Require valid-user
AuthType Basic
AuthName “My SVN-Test”
AuthUserFile /var/svnroot/test/conf/dav_passwd

nun, wie in der letzten Zeile erkennbar, brauchen wir noch einen Passwort-Datei für den webdav-Zugriff. Die passwd die wir zuvor für den SVN-Server eingerichtet haben ist hier wirkungslos.

also legen wir mittels “vi” die Datei Datei an.
Wichtig: die Passwörter werden crypt-Kodiert abgelegt.Das sieht dann meistens in etwa so aus:
username:$1$Abjfkjsx.I o.ä.
Crypt-Generatoren gibt es im Internet genug.

Anschließend laden wir den Apache neu “/etc/init.d/apache2 reload”
hier dringend drauf achten ob es Fehlermeldungen gibt, ggf. hat man sich in der Config vertippt.
Beschwert sich der Apache hier über “DAV svn” oder “SVNPath” fehlt ggf. eines der MOdule die wir oben installiert haben.
(Apt: libapache2-svn, Apache: dav_fs, dav)

ggf. benötigt der Apache (www-data) Zugriff auf den Ordner des Repositories, also am besten root:www-data einstellen.

wenn alles funktioniert hat, können wir nun über den Browser Zugreifen oder ein Checkout aus http://meinserver/svntest/ durchführen.


Kommentare

3 Antworten zu “SVN Server unter Debian Lenny / Ubuntu:”

  1. alex
    Am 16. Januar 2010 um 11:49 Uhr

    Hallo zusammen!

    Um die dav_passwd anzulegen wechsel man einfachi n das verzeichnis /var/svnroot/test/conf

    und führt “htpasswd -c -b dav_passwd ” aus.

  2. alex
    Am 16. Januar 2010 um 11:49 Uhr

    Hallo zusammen!

    Um die dav_passwd anzulegen wechsel man einfachi n das verzeichnis /var/svnroot/test/conf

    und führt “htpasswd -c -b dav_passwd username passwort ” aus.

  3. Weber Online
    Am 2. November 2010 um 21:25 Uhr

    Es wird oft behauptet, dass viele schwache Passwörter ein Problem ist. Aber es ist auch so, dass für viele Anwendungen im Internet ist Gewinn viel zu gering um die Passwörter zu knacken. Was hat er davon, der meine Passwörter knackt? Das Problem ist, dass wir immer die gleiche Passwörter für viele Anwendungen nehmen, weil es gibt so viele verschiedene Anwendungen wo wir uns Registrieren müssen. Es gibt Leute, die immer verschiedene Passwörter nehmen und die nach ein Paar Tagen vergessen.

Einen Kommentar schreiben