Bei mir zu Hause läuft eine alte Microsoft XBox. Auf dieser habe ich ein Linux installiert. Dieses Linux ist ein Debian-Linux. Es basiert auf einem speziellen Kernel für die XBox und wird daher in einer speziellen Distribution ausgeliefert. (http://www.xbox-linux.org/wiki/Xebian)
Hier möchte ich kurz erklären wie man darauf ein SVN einrichtet. Was ein SVN ist, erfährt man hier.
Zunächst werden wir root. Das geht indem man sich entweder direkt als root einloggt oder die Befehler su oder sudo benutzt.
Danach machen wir folgendes:
# apt-get update
# apt-get install subversion
# apt-get install libapache2-svn
Damit sind nun die nötigen Programme installiert. Nun legen wir ein neues Verzeichnis für die Repositories und ein neues Repository an:
# mkdir /var/svn-repos/
# svnadmin create –fs-type fsfs /var/svn-repos/project_zen
Das neue Repository heisst hier “project_zen” und kann natürlich auch anders heissen.
Nun legen wir eine neue Benutzergruppe für Subversion an und fügen alle Benutzer die das subversion benutzen sollen hinzu:
# groupadd subversion
# addgroup john subversion
# addgroup bert subversion
# addgroup you subversion
Hier wurden John, Bert und you hinzugefügt. Es werden noch die entsprechenden Berechtigungen gesetzt:
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*
Nun wird das passwort für jeden Benutzer gesetzt:
# htpasswd2 -c /etc/apache2/dav_svn.passwd you
(beim ersten aufruf)
# htpasswd2 /etc/apache2/dav_svn.passwd john
(alle weiteren aufrufe…)
Als nächstes richten wir den SSL Zugriff ein. Dazu erstellen wir ein Unterverzeichnis SSL und generieren ein Zertifikat und einen public-key.
# mkdir /etc/apache2/ssl
# cd /etc/apache2/ssl
# openssl req -new -x509 -nodes -out meinserver.crt -keyout meinserver.key
Nun legen wir eine weiter Konfigurationsdatei im Apache an um den Zugriff auf SSL, welches über Port 443 läuft zu steuern.
Die Datei kann z.B. heissen: ssl-site, dann bearbeiten wir also (z.B. mit dem Editor vi oder nano:
# nano /etc/apache2/sites-available/ssl-site
Der Inhalt dieser Datei sieht so aus:
<VirtualHost 192.168.1.10:443> ServerName meinserver.org DocumentRoot /var/www2 ServerAdmin xbox-webmaster@meinserver.org # SSL SSLEngine On SSLCipherSuite HIGH:MEDIUM SSLCertificateFile /etc/apache2/ssl/meinserver.crt SSLCertificateKeyFile /etc/apache2/ssl/meinserver.key # Logfiles: CustomLog /var/log/apache2/access-meinserver combined ErrorLog /var/log/apache2/error-meinserver LogLevel warn <Location /> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Location> </VirtualHost>
Damit dieses funktioniert muss noch das Verzeichnis /var/www2 angelegt werden. Ebenfalls müssen wir die Datei /etc/apache2/mods-available/dav_svn.conf bearbeiten:
<Location /svn_zen> DAV svn SVNPath /var/svn-repos/project_zen AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user SSLRequireSSL </Location>
Nun muss diese Datei und der WebDav Zugriff noch zum Apache hinzugefügt und apache neu gestartet werden:
# a2ensite /etc/apache2/sites-available/ssl-site
# a2enmod ssl
# a2enmod dav
# a2enmod dav_svn
# invoke-rc.d apache2 force-reload
Nun ist unser SVN Server mit dem Repository einsatzbereit. Ein erster Test kann mit einem Browser getan werden:
https://meinserver.org/svn_zen/
Es sollte eine Zertifikatswarnung und ein Login-Dialog erscheinen. Nach erfolgreicher Anmeldung sieht man dann die Revision 0 des SVN.
Referenzen:
[1] Setting up Subversion and websvn on Debian
[3] Vielen Dank an Maui für die Hilfe: http://maui.at