Apache DAV-SVN (Linux)

Aus Tutorials
Zur Navigation springen Zur Suche springen

Installation

sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod dav_fs

Konfiguration

Die Datei dav_svn.conf bearbeiten

sudo vi /etc/apache2/mods-available/dav_svn.conf

und folgende Zeilen hinzufügen:

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  SVNListParentPath on
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>

Soll Lesezugriff ohne Passworteingabe erlaubt sein, dann die LimitExcept-Direktive hinzufügen:

<Location /svn>
  ...
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
  ...
</Location>

Passwort-Datenbank anlegen (falls die Datenbank noch nicht existiert, ist der Parameter -c erforderlich):

sudo htpasswd /etc/apache2/dav_svn.passwd <user name>

Zum Abschluss muss der Server neu gestartet werden:

sudo /etc/init.d/apache2 restart 

Aufruf

per IP

http://<server ip>/svn/

per DNS

Verzeichnis für DavLockDB anlegen:

sudo mkdir /var/www/svn
sudo chown www-data:www-data /var/www/svn

Port 80 auf 443 weiterleiten:

sudo vi /etc/apache2/sites-available/svn.conf 
<VirtualHost *:80>
        ServerName svn.<domain>
        ServerAlias svn.<domain>
        Redirect / https://svn.<domain>
</VirtualHost>
sudo vi /etc/apache2/sites-available/svn-ssl.conf 
<virtualhost *:443>
    ServerName svn.<domain>

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/svn.crt
    SSLCertificateKeyFile /etc/ssl/private/apache.key

    DavLockDB /var/www/svn/DavLock

    <Location />
        Dav svn
        SVNParentPath /home/svn
        SVNListParentPath on
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile "/etc/apache2/dav_svn.passwd"
        Require valid-user
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/svn.<domain>-error.log
    CustomLog ${APACHE_LOG_DIR}/svn.<domain>-access.log combined
</virtualhost>

Links

https://httpd.apache.org/docs/2.4/mod/mod_dav.html

Probleme

The URI does not contain the name of a repository.

Wenn kein spezielles Repository ausgewählt wird, können mit der Option SVNListParentPath alle verfügbaren Reposities aufgelistet werden:

<Location /svn>
  ...
  SVNListParentPath on
  ...
</Location>

Links

https://wiki.ubuntuusers.de/Archiv/Subversion/


Zurück zu Apache DAV-SVN