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.
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.
Danach deaktiviere ich die Loginmöglichkeit über SSH
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.