Subversion unter Debian mit Webaccess

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
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:


Websvn 1.jpg


Websvn 2.jpg


Websvn 3.jpg


Websvn 4.jpg


Websvn 5.jpg

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.

Weblinks

Das könnte Sie auch interessieren

Absicherung eines Debian Servers
Thomas Krenn Debian Repository
Upgrade von Debian Etch auf Lenny