Skip to main content

Apache 2 - SVN

SVN

SVN Installation

- Subversion installieren:

apt-get update
apt-get install subversion

Speicherort für Repositories anlegen

- Ordner erstellen wo alle Repositories gespeichert werden sollen

# mkdir /var/svn-repos/

- Rechte für Apache2 vergeben

chown www-data.www-data /var/svn-repos

SVN Repository erstellen

svnadmin create /var/svn-repos/repo123

Dateirechte für Apache2 für Repository vergeben

 chown -R www-data:www-data /var/svn-repos/repo123

Apache 2 Vorbereitungen

Apache SVN Modul installieren

apt-get install libapache2-svn

Apache Module aktivieren

a2enmod dav
a2enmod dav_svn
a2enmod authz_svn

Benutzerverzeichnis anlegen

- nun legen wir für den Webzugriff unsere User an

Benutzerverzeichnis erstmalig anlegen mit der Option -c

Achtung! Bestehende Nutzer werden dabei überschrieben! Das ist zum Anlegen des Verzeichnisses, nicht eines neuen Users!

htpasswd -c /etc/apache2/dav_svn.passwd user1

- danach müsst ihr ein Passwort festlegen

Weitere Benutzer in das Benutzerverzeichnis anlegen

htpasswd /etc/apache2/dav_svn.passwd user2

- danach müsst ihr ebenfalls ein Passwort festlegen

Mit diesen Benutzern könnt ihr jetzt arbeiten und Zugriffe steuern.

Accessfile anlegen

- diese Datei beinhaltet die Regelungen welche User oder gruppe auf welche Repos oder Verzeichnisse zugreifen darf

- diese Datei unter /etc/apache2 speichern

- Beispiel: dav_svn.accessfile

# Definitions of groups with users from operating system
[groups]
admins = user1,user2
testusers = user2

# Definitions of repositories

[user1:/]
user1 = rw
user2 = r

[user2:/]
user1 = r
user2 = rw

[test:/]
@testusers = rw

Apache2 Konfiguration

Nun müsst ihr eine sog. VHOST Konfiguration anlegen und euren Ordner angeben, den wir am Anfang angelegt haben. In unserem Beispiel also /var/svn-repos.

Hier eine Beispiel Konfiguration:

<Location /svn>
        DAV svn
        SVNParentPath /var/svn-repos
        SVNListParentPath On

        AuthType Basic
        AuthName "SVN Authorization Realm"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user
        AuthzSVNAccessFile /etc/apache2/dav_svn.accessfile
</Location>

Fertig!

Danach nochmal den Apache2 neustarten /etc/init.d/apache2 restart und ihr könnt euer SVN bequem für eure Teams einrichten ohne auf eurem Linuxsystem Unmengen an Usern anlegen zu müssen.