Einrichten eines Subversion Servers auf einem Debian Linux System
Für meine zukünftigen Projekte möchte ich phpUnderControl in Verbindung mit Subversion einsetzen. Die Installation ist im folgenden beschrieben.
apt-get install subversion |
Wenn alles korrekt installiert wurde kann man ein Projektarchiv anlegen.
svnadmin create /var/repos |
Das Verzeichnis sieht nun so aus:
root@lvps:/var/repos# ls -l total 7.0K -rw-r--r-- 1 root root 379 Oct 8 12:13 README.txt drwxr-xr-x 2 root root 1.0K Oct 8 12:13 conf drwxr-xr-x 2 root root 1.0K Oct 8 12:13 dav drwxr-sr-x 2 root root 1.0K Oct 8 12:13 db -r--r--r-- 1 root root 2 Oct 8 12:13 format drwxr-xr-x 2 root root 1.0K Oct 8 12:13 hooks drwxr-xr-x 2 root root 1.0K Oct 8 12:13 locks |
Als nächstes brauchen wir einen Server der auf dieses Archiv zugreift damit wir Projektdaten einpflegen können.
man svnserv |
Laut Dokumentation kann er als Standalone Prozess oder auf Abruf als Intetd Dienst gestartet werden. Da phpUnderControl in einem definierten Intervall auf das Archiv zugreift entscheide ich mich, den Server als Standalone Prozess zu starten.
Damit der Server nicht als root läuft lege ich einen Benutzer svn an.
adduser svn |
Danach deaktiviere ich die Loginmöglichkeit über SSH
passwd -l svn |
Das Verzeichnis /var/repos wird dem Benutzer und der Gruppe svn zugewiesen
chown -R svn:svn /var/repos |
Nun die Konfiguration des Servers.
root@lvps:/var/repos# cd conf/ root@lvps:/var/repos/conf# vi svnserve.conf |
In der Datei entferne ich das Kommentarzeichen vor general und ändere folgende Zeilen:
[general] anon-access = none auth-access = write password-db = passwd realm = forestsoft [sasl] use-sasl = true min-encryption = 128 max-encryption = 256 |
Hinweis: SASL muss vom SVN Server unterstützt werden. Bei älteren Linux Distributionen kann es sein das es nicht mit einkompliert ist.
Herausfinden kann man das folgendermaßen:
root@lvps:/var/repos# svnserve --version [....] Cyrus SASL authentication is available. |
Damit der SASL weiss wie authentifiziert werden soll brauchen wir eine Konfigurationsdatei im Verzeichnis /usr/lib/sasl2.
root@lvps:/var/repos/conf# vi /usr/lib/sasl2/svn.conf |
pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: DIGEST-MD5 sasldb_path: /usr/lib/sasl2/svndb |
Und die dazugehörige sasldb:
root@lvps:/var/repos/conf# saslpasswd2 -c -f /usr/lib/sasl2/svndb -u forestsoft benutzername |
Hierbei ist forestsoft der realm der in der /var/repos/conf/svnserve.conf angegeben worden ist.
Jetzt starte ich den Server Prozess als Benutzer svn
su svn svnserve -d -r /var/repos exit |
Kurzer Check ob alles geklappt hat:
root@lvps:/var/repos/conf# ps aux | grep svn svn 22323 0.0 0.0 2792 1276 pts/2 T 12:56 0:00 svnserve -d -r /var/repos root 22466 0.0 0.0 1540 492 pts/2 S+ 12:59 0:00 grep svn |
Prozess läuft also und der Server ist nun bereit Anfragen entgegen zu nehmen.
Im nächsten Teil richte ich den Client ein und übertrage mein Projekt.