SVN Apache Modul und Vhosts

Nach der Installation eines SVN-Servers und dem Apache Modul libapache2-svn auf meinem Debian-Etch System hatte ich ein kleines Problem mit der Default-Config auf welches ich hier kurz eingehen möchte.
Um ein Repository über http(s) erreichbar zu machen wird stardardmäßig die Datei /etc/apache2/mods-available/dav_svn.conf verwendet. Hier finden sich ein paar Zeilen welche in etwas so aussehen:

1
2
3
4
5
6
7
8
<Location /myproject_site>
DAV svn   
SVNPath /var/svn/myproject   
AuthType Basic   
AuthName "Subversion Repository"   
AuthUserFile /etc/apache2/svn.passwd   
Require valid-user   
</Location>

Damit ist das Repository allerdings unter jeder Domain die auf dem Server läuft erreichbar. (domainname.tld/myproject_site).
Um das Repository nur unter einem Vhost erreichbar zu machen, etwa svn.domain.tld kann man die Zeilen aus der dav_svn.conf in die httpd.conf des Apaches verschieben. Das könnte beispielsweise so ausssehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost 11.22.33.44:80>
        ServerName svn.domain.tld
        DocumentRoot "/var/www/svn.domain.tld/"
        <Location />
                DAV svn
                SVNPath /var/svn/myproject
                AuthType Basic
                AuthName "domain.tld Repository"
                AuthUserFile /etc/apache2/svn.passwd
                Require valid-user                
                AuthzSVNAccessFile /var/svn/myproject/conf/authz
        </Location>
</VirtualHost>

Damit ist das Repository dann nur noch unter svn.domain.tld erreichbar.
Eine grundlegende Anleitung zum einrichten eines SVN-Server gibt es z.B. hier: Installing Subversion on Debian Etch Complete…