Subversion unter Debian mit Webaccess
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Dieser Artikel beschreibt wie man Repositories für Subversion unter Debian mit Webaccess einrichtet. Voraussetzung für dieses HOWTO ist, dass PHP und apache2 installiert und konfiguriert sind.
Installation und Konfiguration von Subversion
Installation der Subversion Pakete
Geben Sie mit Rootrechten folgende Befehle zur Installation der benötigten Pakete ein:
vps140:~# apt-get update vps140:~# apt-get install subversion libapache2-svn
Voraussetzung für einen Webaccess auf das Subversion Repository über den apache2 Webserver ist, dass das apache2 Modul authz_user aktiviert ist:
vps140:~# a2enmod authz_user
Erstellen des Repositories
Als nächstes soll ein Subversion Repository angelegt werden. Dazu wird zunächst ein Ordner angelegt:
vps140:~# mkdir /var/lib/svn
Und anschließend mit folgendem Befehl ein leeres Repository erzeugt:
vps140:~# svnadmin create /var/lib/svn
Das Repository-Verzeichnis braucht geeignete Zugriffsrechte für apache2 und für die Benutzer. Dazu wird Folgendes angelegt:
vps140:~# chown -R www-data /var/lib/svn vps140:~# htpasswd -cm /etc/apache2/dav_svn.passwd testuser vps140:~# htpasswd -m /etc/apache2/dav_svn.passwd testuser2 . . . vps140:~# nano /etc/apache2/dav_svn.authz
Die Datei /etc/apache2/dav_svn.authz soll dabei Folgendes enthalten:
[/] * = r testuser = rw testuser2 = rw . . .
Abschließend muss noch der Subversion Daemon gestartet werden:
vps140:~# svnserve -d -r /var/lib/svn
Konfiguration des Webaccess mittels WebDAV
Die Apache Module dav, dav_svn und authz_svn werden normalerweise automatisch aktiviert. Um dies sicherzustellen müssen folgende Befehle ausgeführt werden:
vps140:~# a2enmod dav vps140:~# a2enmod dav_svn vps140:~# a2enmod authz_svn
Damit die Zugriffe auch über http (bzw. https) erfolgen können muss noch die Datei /etc/apache2/mods-available/dav_svn.conf wie folgt angepasst werden:
<Location /svn> DAV svn SVNPath /var/lib/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> # SSLRequireSSL </Location>
Um die SSL-Verschlüsselung zu aktivieren, einfach das # vor der Zeile SSLRequireSSL entfernen.
Abschließend muss nur noch der apache2 Webserver neugestartet werden. Dann ist das SVN Repository über http (https) erreichbar. (z. B. über http://meinedomain.de/svn)
vps140:~# /etc/init.d/apache2 force-reload
Installation und Konfiguration von websvn
Um auch über den Webbrowser eine komfortable Ansicht auf die SVN Repositories zu erhalten, soll im Weiteren noch die Anwendung websvn installiert werden. Für ein Arbeiten mit den SVN Repositories ist dies aber nicht zwingend erforderlich.
Installation der benötigten Pakete
Um websvn benutzen zu können müssen Sie folgende Pakete installieren:
vps140:~# apt-get install enscript websvn
Bei der Installation des Paketes websvn werden Sie dabei nach der gewünschten Konfiguration abgefragt. Machen Sie die Eingaben wie folgt:
Sie können die Konfiguration jederzeit erneut durchführen mit:
vps140:~# dpkg-reconfigure websvn
Hinweis zur Installation von websvn unter Ubuntu 14.04: WebSVN 2.3.3-1.1 fails to install on Ubuntu 14.04 using apt-get
Konfiguration von websvn
Nach der Installation passen Sie die Datei /etc/websvn/config.inc wie folgt an:
<?php // --- LOOK AND FEEL --- // // Uncomment ONLY the display file that you want. $config->setTemplatePath("$locwebsvnreal/templates/Standard/"); // $config->setTemplatePath("$locwebsvnreal/templates/BlueGrey/"); // $config->setTemplatePath("$locwebsvnreal/templates/Zinn/"); // $contentType[".c"] = "plain/text"; // Create a new association // $contentType[".doc"] = "plain/text"; // Modify an existing one unset($contentType[".sh"]); // Remove a default association -> .sh is regarded as a binary file by default, needs to be unset // --- COLOURISATION --- // Uncomment this line if you want to use Enscript to colourise your file listings // // You'll need Enscript version 1.6 or higher AND Sed installed to use this feature. // Set the path above. // $config->useEnscript(); // Enscript need to be told what the contents of a file are so that it can be colourised // correctly. WebSVN includes a predefined list of mappings from file extension to Enscript // file type (viewable in setup.inc). // // Here you should add and other extensions not already listed or redefine the default ones. eg: // // php is default correctly colourized $extEnscript[".java"] = "java"; $extEnscript[".pl"] = "perl"; $extEnscript[".py"] = "python"; $extEnscript[".sql"] = "sql"; $extEnscript[".java"] = "java"; $extEnscript[".html"] = "html"; $extEnscript[".xml"] = "html"; $extEnscript[".thtml"] = "html"; $extEnscript[".tpl"] = "html"; $extEnscript[".sh"] = "bash"; // --- MISCELLANOUS --- // Uncomment this if you don't have the right to use it. Be warned that you may need it however! set_time_limit(0); // Comment this line to turn off caching of repo information. This will slow down your browsing. $config->setCachingOn(); // Number of spaces to expand tabs to in diff/listing view across all repositories $config->expandTabsBy(8); // To change the global option for individual repositories, uncomment and replicate // the required line below (replacing 'myrep' for the name of the repository to be changed). // $config->findRepository("myrep")->expandTabsBy(3); // Expand Tabs by 3 for repository 'myrep' ?> <?php if ( file_exists("/etc/websvn/svn_deb_conf.inc") ) { include("/etc/websvn/svn_deb_conf.inc"); } ?>
Damit ist websvn fertig installiert und konfiguriert. Im DocumentRoot des Webserver finden Sie nun einen Ordner websvn. Sie könnten hiermit über einen Webbrowser unter Angabe der Adresse (z. B. http://meinedomain.de/websvn) das Repository einsehen.