Blogs/20070408 howto debian setup subversion daemon with web access

Aus Cryptronic
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Subversion unter Debian mit Webaccess

Intro

Irgendwie fehlt es eindeutig an howtos wie man mit subversion unter Debian mit webaccess über https einrichtet. Denn wie oft kommt es vor, dass man hinter Firewalls sitzt die den Standard svn Port nicht durchlassen sondern blocken.

Installation

Als erstes benötigen wir die Subversion Pakete:

Folgendes in der Shell als root ausführen:
apt-get install subversion

Anschließend noch das entsprechende apache2 Modul:

Folgendes in der Shell als root ausführen:
apt-get install libapache2-svn

Man muss noch schauen, dass authz_user aktiviert ist:

Folgendes in der Shell als root ausführen:
a2enmod authz_user

Einrichtung

Repository anlegen und svnserve einrichten

Zuerst einmal den Ordner für die ganzen SVN Repositorys anlegen. Ich bevorzuge /var:

Folgendes in der Shell als root ausführen:
mkdir /var/lib/svn

Nun legen wir unser Testrepositoy an:

Folgendes in der Shell als root ausführen:
svnadmin create --fs-type fsfs /var/lib/svn/svn_test 

Da apache später auf das repository Zugriff benötigt legen wir noch eine Gruppe Subversion an und übergeben ihr und dem Benutzer www-dat, unter dem apache2 läuft, die Repositorys.

Folgendes in der Shell als root ausführen:
groupadd subversion
chown -R www-data:subversion /var/lib/svn/*
chmod -R 770 /var/lib/svn/* 

Nun ist das erste Subversion (svn) Repository eigentlich schon erfolgreich aufgesetzt worden.

Den Daemon startet man folgendermaßen:

Folgendes in der Shell als root ausführen:
svnserve -d -r /var/lib/svn/

Ein Testfile muss nun noch importiert werden bevor der erste checkout erfolgen kann:

Folgendes in der Shell als crypt ausführen:
mkdir /home/crypt/svn
echo "testimport" > /home/crypt/svn/testfile
svn import -m "testing over svn" svn://<ip>/svn_test /home/crypt/svn/

Nun kann man von einem anderen Rechner bereits den Zugriff überprüfen:

Folgendes in der Shell als crypt ausführen:
svn co svn://<ip>/svn_test

Apache2 Module einrichten

Um auch noch per https auf das svn Repository zugreifen zu können benötigen wir noch das vormals installierte Paket libapache2-svn.

Dieses sorgt für die richtige Schnittstelle zwischen Web und Repository.

Falls noch nicht geschehen müssen erstmal folgende Module aktiviert werden:

Folgendes in der Shell als root ausführen:
a2enmod dav
a2enmod dav_svn

Im Anschluss definieren wir noch verschiedene Benutzer die Zugriff auf das Repository erhalten:

Folgendes in der Shell als root ausführen:
htpasswd -c /etc/apache2/dav_svn.passwd crypt
htpasswd /etc/apache2/dav_svn.passwd user1

Nun muss man noch den Inhalt der /etc/apache2/mods-enabled/dav_svn.conf anpassen, damit auch die Zugriffe erfolgen können:

File: /etc/apache2/mods-enabled/dav_svn.conf
		<Location /svn_test>
		  DAV svn
		  SVNPath /var/lib/svn/svn_test
		  AuthType Basic
		  AuthName "Subversion Repository"
		  AuthUserFile /etc/apache2/dav_svn.passwd
		  Require valid-user
		  SSLRequireSSL
		</Location>

Wer das ganze ohne SSL nutzen will muss lediglich die Zeile SSLRequireSSL aus der /etc/apache2/mods-enabled/dav_svn.conf auskommentieren.

Anschließend muss lediglich noch der apache2 neugestartet werden.

Folgendes in der Shell als root ausführen:
/etc/init.d/apache2 restart

Falls noch nicht geschehen muss noch ein Testskript importiert werden:

Folgendes in der Shell als crypt ausführen:
mkdir /home/crypt/svn
echo "testimport" > /home/crypt/svn/testfile
svn import -m "testing over https" https://<ip>/svn_test /home/crypt/svn/

Nun kann auch per https auf das svn Repository von einem Rechner zugegriffen werden:

Folgendes in der Shell als crypt ausführen:
svn co https://<ip>/svn_test

Das war's viel Spaß / Erfolg beim Entwickeln und Benutzen von Subversion.

Thanks

Mein besonderer Dank gilt folgendem Autor: http://www.howtoforge.com/debian_subversion_websvn Da dieses howto teilweise leicht verwirrend war, habe ich mir gedacht, ich schreib das mal neu und beziehe mich dennoch auf es.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Tipps
Werkzeuge