Blogs/20070408 howto debian setup subversion daemon with web access
Aus Cryptronic
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.
