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:


<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:

<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...