Inhaltsverzeichnis
Installation
Die Einrichtung von WebSvn ist recht trivial:
apt-get install websvn
Bei der anschließenden Frage nach dem Parent-Directory der Repositories passt für unsere Konfiguration /data/repos. Die anschließende Eingabe der Repositories ist irrelevant.
Anpassung des apache
Jetzt sind alle Repositories unter https://svn.systemausfall.org/websvn erreichbar.
Leider ist es mit dieser Konfiguration noch nicht möglich, die Lese-Rechte zu konfigurieren, da die URLs der Repositories nicht hierarchisch sind. Um dies zu erreichen, sind folgende Schritte erforderlich:
das aktive /websvn/ beispielsweise nach /websvn-base umbenennen
mv /var/www/websvn /var/www/websvn-base
die wsvn.php-Datei verlinken:
ln -s /usr/share/websvn/wsvn.php /var/www/websvn.php
mit der folgenden apache-Konfigurationsdatei (beispielsweise /etc/apache2/conf.d/websvn.conf) aktivierst du MultiViews und setzt den korrekten DirectoryIndex:
<Location /> DirectoryIndex websvn.php index.php Options MultiViews FollowSymLinks </Location> <Location /websvn-base> Options FollowSymLinks AllowOverride None order allow,deny allow from all <IfModule mod_php4.c> php_flag magic_quotes_gpc Off php_flag track_vars On </IfModule> </Location> <Location /websvn/> DAV svn SVNParentPath /data/repos AuthzSVNAccessFile /data/etc/svn-access.conf AuthType Basic AuthName "subversion auf systemausfall.org" AuthLDAPUrl ldap://ldap.sao/o=neofaxe,dc=systemausfall,dc=org?cn?sub?(objectClass=webAccount) # stattdessen kannst du natuerlich auch AuthUserFile verwenden, falls du keinen LDAP-Server nutzt # diese Kombination von Satisfy und Require sorgt dafuer, dass anonymer Zugriff moeglich ist # nur wenn ein Nutzername beispielsweise fuer Schreibzugriff (siehe AuthzSVNAccessFile) erforderlich ist, # erfolgt eine Authentifikation Satisfy Any Require valid-user </Location>
Diese Konfiguration ist zusammengebasteltet - aber es funktioniert wenigstens
Falls du Verbesserungsvorschläge hast, dann her damit!
WebSvn-Konfiguration
in der /etc/websvn/config.inc folgende Zeile aktivieren:
$config->useMultiViews();
eventuell dann noch folgende Zeilen:
$config->allowDownload(); $config->useEnscript();
in der /etc/websvn/wsvn.php solltest du folgende Zeile anpassen, falls du dem MultiViews-Ansatz im vorigen Abschnitt gefolgt bist:
$locwebsvnhttp = "/websvn-base";
in der /etc/websvn/svn_deb_conf.inc sollte nur folgende Zeile aktiv sein:
$config->parentPath("/data/repos");
Einstellungen des Proxy-Servers [optional]
Unsere Server-Struktur verwendet einen Proxy zur Verteilung der Anfragen auf die dahinterliegenden Web-Server. Die entsprechenden Zeilen für die Konfiguration des Pound-Proxy sind folgende:
UrlGroup "^/svn.*" BackEnd svn.sao,80,1 EndGroup UrlGroup "^/websvn.*" BackEnd svn.sao,80,1 EndGroup
Probleme beim Paket-Upgrade
Wenn nach einem Upgrade keine websvn-Oberfläche erscheint (ohne Fehlermeldung), dann kann dies folgendermaßen behoben werden:
rm /var/www/websvn