SVN-Server installieren: Unterschied zwischen den Versionen

Aus
K (Kleinigkeiten)
 
(112 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== SVN (Subversion) auf der DS ==
== Anleitung ist veraltert ==
Subversion ist eine Codeverwaltung, die das gemeinsame Arbeiten an gleichen Codes wesentlich vereinfacht. Subversion übernimmt hierbei das Versionsmanagement der Codes. Der Beitrag basiert auf diesem Thread im Forum von [http://www.synology-forum.de/showthread.html?t=1151 Toscman]
Diese Anleitung ist veraltet. SVN ist jetzt als Zusatzpaket im DiskStation Manager verfügbar.
 
[
https://www.synology.com/de-de/dsm/packages/SVN]
 
== SVN (Subversion) auf der Disk Station ==
Subversion ist eine Versionsverwaltungsoftware, die das gemeinsame Arbeiten an dem Code für einen Nutzer oder große Gruppen wesentlich vereinfacht. Subversion übernimmt hierbei das Versionsmanagement des Code.
 
== Installation ==
== Installation ==
=== Voraussetzungen ===
=== Voraussetzungen ===
Zeile 7: Zeile 14:
* [[IPKG|Paketverwaltung ipkg muss installiert sein]]
* [[IPKG|Paketverwaltung ipkg muss installiert sein]]
* Login auf die Shell als '''root''' mit Administrator Passwort
* Login auf die Shell als '''root''' mit Administrator Passwort
=== Pakete installieren ===
 
Wie bei ipkg Pakete üblich geht das mit dem gewohnten "Zweisatz" bei den DS
== Netzwerkfreigabe und Synology-Benutzer anlegen==
Im Disk Station Manager (Web GUI) eine neue Netzwerkfreigabe (gemeinsamen Ordner) Namens "'''svn'''" erstellen. Dabei wird von dem System der SVN Arbeitsordner '''/volume1/svn''' angelegt.
 
Einen neuen Synology Benutzer Namens "'''svnowner'''" ohne Passwort anlegen und ihm Schreib-Leserechte für das Verzeichnis "'''svn'''" freigeben. Für den Benutzer sollen am besten alle weiteren Freigaben versperrt bleiben. Zur Not müssen die Rechte nachträglich angepasst werden. Oft sind die falschen Rechte bei den Dateien und Verzeichnissen ein Grund dafür, dass der Server nicht startet.
 
== Neus SVN Repository anlegen und konfigurieren ==
 
Einloggen mit [http://www.putty.org/ Putty] als '''root''' mit Adminpasswort.
 
Die '''Prozentzeichen (%...%)''' deuten auf eine Variable die Sie entsprechend Ihren Bedürfnissen jedoch ohne Prozentzeichen ersetzen sollen.
 
<pre>login as: root
password: %Adminpasswort%</pre>
 
Auf der DiskStation IPKG Pakete aktualisieren und das Paket SVN installieren.
<pre>
<pre>
$ ipkg update
$ ipkg update
$ ipkg install svn
$ ipkg install svn
</pre>
</pre>
== Konfiguration + Einrichten ==
# Einloggen mit Putty als '''root''' (wirklich Namen mit "root" angeben und Adminpasswort, Putty ist ein kleines Tool, mit dem man sich komfortabel auf die DS verbinden kann.)
# Wechseln ins Verzeichnis '''/volume1/svn''' (Ordner svn habe ich selber angelegt, im Ordner svn lege ich die Repositorys an, falls es mehrere werden)
# '''su %user%''' (user ist der entsprechende Adminbenutzer, nicht root!!! )
# '''svnadmin create %verzeichnis%''' ('verzeichnis' ist der Name deines Repos)
# '''cd %verzeichnis%/conf'''
# '''vi passwd'''
# testuser = testpw (hier im Klartext User und Passwort der Benutzer für dein Repos eingeben)
# "ESC"
# ''':wq''' (Sind die Eingaben im VI. Der ist gewöhnungsbedürftig)
# '''chmod 600 passwd''' (Das ist wichtig, da du sonst dich wahrscheinlich nicht einloggen kannst)
# '''vi svnserve.conf'''
# anon-access = none (Sorgt dafür, dass kein anderer Lese- oder sonstige Rechte hat)
# auth-access = write (Angemeldete User haben Schreibrechte)
# password-db = passwd (Verweis auf die passwd - da sind die Benutzer drin)
# realm = Mein Repository (Name deines Repos hier angeben, ist optional)
# "ESC"
# ''':wq''' (Speichern im VI-Editor)


Wechseln ins Verzeichnis /volume1/svn
<pre>cd /volume1/svn</pre>
Das SVN-Verzeichnis erstellen. "'''my_svn_repo'''" ist der Name von unserem neuen Repository. Wichtig - vollständigen Pfad angeben.
<pre>svnadmin create /volume1/svn/%my_svn_repo%</pre>
Benutzerrechte für das Verzeichnis /volume1/svn/%my_svn_repo% anpassen. Rechte mit dem Befehl "dir" überprüfen. Alle Dateien sollen dem User "svnowner" und der Gruppe "users" gehören.
<pre>chown svnowner:users -R %my_svn_repo%
dir</pre>
In das Verzeichnis /volume1/svn/%my_svn_repo% wechseln. Eventuell die Struktur wieder mit dem Befehl "dir" kontrollieren.
<pre>cd %my_svn_repo%
dir</pre>


In das Unterverzeichnis "'''conf'''" in unserem neu erstellten SVN-Repository wechseln. Wieder mit "dir" die Struktur kontrollieren.
<pre>cd conf
dir</pre>


== SVN auf Clienten aufrufen ==
Datei mit der Benutzerdatenbank "/volume1/svn/%my_svn_repo%/conf/passwd" mit dem Editor VI öffnen.
Das geht am besten mit dem Programm Tortoise. Ist kostenlos im Internet erhältlich. Einfach runterladen und installieren.
 
Anschließend kann man per Rechtsklick das Kontextmenü aufrufen und dort den Punkt "SVN Checkout" aufrufen.
'''Bemerkung''': Die Konfigurationsdateien können auch in dem freigegebenen Ordner "svn" mit einem Windows-Editor wie [http://notepad-plus-plus.org/ Notepad++] bearbeitet werden.
<pre>vi passwd</pre>
 
In die Datei 'passwd' zukünftige SVN-Benutzer eintragen. Im Klartext User und Passwort der Benutzer für das Repository eingeben.
<pre>%mein_svn_user1% = %meinpasswort123%
%mein_svn_user2% = %meinpasswort456%
karlheinz = geheim
...</pre>
 
Editiermodus verlassen, in den Befehlsmodus wechseln.
<pre>Taste "ESC"</pre>
 
Datei speichern und VI-Editor verlassen (write & quite).
<pre>:wq</pre>
 
Für begrenzte Schreib/Leserechte der Datei "passwd" sorgen.
<pre>chmod 600 passwd</pre>
 
Konfigurationsdatei des neuen SVN Repository "/volume1/svn/%my_svn_repo%/conf/svnserve.conf" mit dem Editor VI anpassen.
<pre>vi svnserve.conf</pre>
 
Editor VI in den Editiermodus umschalten.
<pre>i</pre>
 
Folgendes auskommentieren bzw. ergänzen:
# Rechte für anonyme Benutzer einschränken.
# Angemeldeten Benutzern den Zugang erlauben.
# Bezeichnung der Passwortdatei in der die Benutzer aufgelistet sind.
# Bezeichnung des Repository - optional
<pre>anon-access = none
auth-access = write
password-db = passwd
realm = Mein Repository</pre>
 
Editiermodus verlassen, in den Befehlsmodus wechseln.
<pre>Taste "ESC"</pre>
 
Datei speichern und VI-Editor verlassen (write & quite).
<pre>:wq</pre>
 
Das Repository ist nun einsatzbereit. Der Server muss noch konfiguriert werden.
 
== Konfiguration des Servers ==
 
=== Einrichtung von inet-Daemon ===
Mit dem Editor VI die Datei /etc/inetd.conf bearbeiten:
<pre>vi /etc/inetd.conf</pre>
 
Folgende Zeile einfügen
<pre>svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn</pre>
 
Speichern und schließen:<br /><pre>: wq</pre>
 
==== Datei "services" anpassen ====
 
Mit dem Editor VI die Datei /etc/services bearbeiten:
<pre>vi /etc/services</pre>
 
Am Ende folgende Zeilen einfügen:
<pre>svn            3690/tcp                        #Subversion
svn            3690/udp                        #Subversion</pre>
 
Speichern und schließen:<br /><pre>: wq</pre>
==== Neustart ====
Nach der Installation ist ein Neustart der DiskStation erforderlich. Das geht manuell per WebGUI oder mit dem Befehl:
<pre>reboot</pre>
 
== SVN auf Arbeitscomputer aufrufen ==
Am besten geht das mit dem Programm [http://tortoisesvn.net/ Tortoise]. Es ist ein mächtiges Werkzeug, ist kostenlos und kann einfach runterladen und auf den Arbeitscomputer installieren werden.  
 
Nach dem '''Tortoise''' auf Ihrem Arbeitscomputer installiert ist kann man per '''Rechtsklick auf dem Desktop oder Ordner''' das Kontextmenü aufrufen und dort den Punkt "SVN Checkout" aufrufen.  


Der SVN-Pfad den man eingeben muss lautet folgendermaßen:
Der SVN-Pfad den man eingeben muss lautet folgendermaßen:
<pre>
<pre>
svn://%ip_von_DS%/%repos_ordner%
svn://%ip_von_DS%/%my_svn_repo%
</pre>
</pre>
Anschließend wird der Ordner an der entsprechenden Stelle erzeugt und ihr könnt damit arbeiten.
Man wird nach dem Benutzernamen und Passwort gefragt. Hier geben Sie den Benutzernamen denn Sie in der Datei mit der Benutzerdatenbank '''/volume1/svn/%my_svn_repo%/conf/passwd''' eingetragen haben. Anschließend wird der Ordner an der entsprechenden Stelle erzeugt.
 
Nun kann man mit dem SVN Repository arbeiten. Ihr könnt die Dateien in den Ordner hineinpacken und mit dem Rechtsklick auf Datei oder Ordner und dem Kontextmenu "SVN übertragen" die Dateien auf den Server hochladen oder mit "SVN aktualisieren" herunterladen.
 
== SVN Repository löschen ==
Wird ein SVN Repository nicht mehr benötigt kann es mit dem einfachen Befehl "rm -r %my_svn_repo%" gelöscht werden. Das Löschen über die Netzwerkfreigabe reicht ebenfalls aus.
 
In das SVN Verzeichnis wechseln. Verzeichnisstruktur mit "dir" kontrollieren. Nicht mehr benötigtes Repository löschen.
<pre>cd /volume1/svn
dir
rm -r %my_svn_repo%"</pre>
 
== Mit dem SVN Repository auf einen anderen Ort umziehen ==
Beim Systemwechsel, Neuinstallation der DiskStation OS ist es notwendig das Repository zu sichern und wieder neu einzuspielen.
 
Mit dem Befehl "svnadmin dump..." wird eine Kopie des SVN Repositorys erstellt. Bei diesem Beispiel wird die Dump-Datei im vorher freigegebenen Ordner "public" gespeichert.
<pre>svnadmin dump /volume1/svn/%my_svn_repo% > /volume1/public/%my_svn_repo%.dump</pre>
 
Wiederherstellen auf dem neuen Ort geht mit dem Befehl "load". Das Ziel SVN Repository "my_svn_repo" muss bereits existieren.
<pre>svnadmin load /volume1/svn/%my_svn_repo% < /volume1/public/%my_svn_repo%.dump</pre>
 
==WebSVN installieren==
Aktuelle Version von [http://www.websvn.info/download/ WebSVN] herunterladen und in den Ordner '''/web/websvn''' entpacken. Es wird empfohlen die Datei INSTALL.TXT durchzulesen. bei der Version 2.3.2 liegt die unter "/doc/install.html". Damit die Anwendung gestartet werden kann muss die Konfigurationsdatei angelegt werden. Dafür im Ordner '''/include''' eine Kopie der Datei '''distconfig.php''' anlegen und in '''config.php''' umbenennen.
 
Die Datei '''/web/websvn/include/config.php''' wie folgt ergänzen:
 
1. Folgende Zeile hinzufügen ( SVN läuft im Ordner /opt/bin).
<pre>$config->setSVNCommandPath('/opt/bin');</pre>
 
2. SVN Repository hinzufügen (etwa bei der Zeile 70). Es können mehrere Repositorys untereinander eingetragen werden.
 
<pre>$config->addRepository('Mein repository','file:///volume1/svn/%my_svn_repo%');</pre>
 
Weitere Einstellungen in der Datei nach Bedarf ändern.
 
Damit WebSVN den Server erreichen kann müssen die PHP Konfigurationsdateien angepasst werden. Sonst beim Aufruf der Adresse http://%ip_von_DS%/websvn/ bekommt man die Fehlermeldung mit '''open_basedir'''.
 
In der Datei '''/usr/syno/etc/php.ini''' den eintrag '''safe_mode_execdir''' entfernen.
<pre># WebSVN
# safe_mode_exec_dir = /usr/syno/bin
safe_mode_exec_dir =</pre>
 
Unter DSM 3.0 muss der Eintrag "open_basedir, PHPINI_BASEDIR_DEF" in der Datei '''/usr/syno/etc/php/user-setting.ini''' erfolgen (Nicht getestet, Sehe [http://forum.synology.com/wiki/index.php/Step-by-step_guide_to_installing_Subversion  http://forum.synology.com/wiki]).
 
Da DSM 2.3 die Datei php.ini bei dem Start überschreibt muss der Eintrag PHPINI_BASEDIR_DEF im Skrips '''/usr/syno/etc/rc.d/S97apache-user.sh''' geänder werden.
<pre>
# WebSVN
# PHPINI_BASEDIR_DEF="/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:${PHPINI_BASEDIR_SERV}"
PHPINI_BASEDIR_DEF="/usr/bin/php:/opt/bin:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:${PHPINI_BASEDIR_SERV}"</pre>
Apache neu starten.
<pre>/usr/syno/etc/rc.d/S97apache-user.sh restart</pre>
 
 
Nun kann man das angelegte Repository unter der Adresse öffnen: <pre>http://%ip_von_DS%/websvn/</pre>
 
== Probleme und Bemerkungen der User ==
 
Einmaliges Starten des Servers, geht bei Neustart verloren. Auf Konsole aufrufen:
<pre>svnserve -d -r %my_svn_repo%</pre>
 
Start des SVN-Servers bei Systemstart:
 
Nach [http://download.synology.com/download/ds/userguide/Synology%20NAS%20Server%203rd-Party%20Apps%20Integration%20Guide.pdf dieser Anleitung] vorgehen und in das eigene Bootscript obigen Code einfügen.
 
Vorbemerkung: SVN ist erfahrungsgemäß recht ressourcenhungrig. Darum ist es sinnvoller den SVNserver-Daemon nicht die ganze Zeit am Laufen zu haben, sondern nur zu starten, wenn er benötigt wird. Das funktioniert unter Linux/Unix mit dem [http://de.wikipedia.org/wiki/Inetd inet-Daemon].
(...kann ich nicht bestätigen)
 
Bei mir funktionierte der Start mittels inetd nicht auf Anhieb. Das Problem wurde anscheinend auch [http://forum.synology.com/enu/viewtopic.php?f=44&t=9556 hier] beschrieben.
Es half den inet-Daemon neu zu starten:
<pre>/usr/syno/etc/rc.d/S03inetd.sh stop</pre>
<pre>/usr/syno/etc/rc.d/S03inetd.sh start</pre>


== Links ==
== Links ==
* [http://forum.synology.com/wiki/index.php/Step-by-step_guide_to_installing_Subversion SVN Installation auf http://forum.synology.com/wiki]
* [http://www.synology-forum.de/showthread.html?t=1151 Beitrag im Forum]
* [http://www.synology-forum.de/showthread.html?t=1151 Beitrag im Forum]
* [http://subversion.tigris.org/ Projekt Homepage von Subversion]
* [http://subversion.tigris.org/ Projekt Homepage von Subversion]
* [http://de.wikipedia.org/wiki/Subversion_(Software)#Grafische_Benutzeroberfl.C3.A4chen Beispiele von Clients für svn]
* [http://de.wikipedia.org/wiki/Subversion_(Software)#Grafische_Benutzeroberfl.C3.A4chen Beispiele von Clients für svn]
* [http://www.kf-tech.net/synology-nas/21-svn-auf-synology-diskstation.html Originalbeitrag auf www.kf-tech.net]

Aktuelle Version vom 21. Juli 2017, 21:58 Uhr

Anleitung ist veraltert

Diese Anleitung ist veraltet. SVN ist jetzt als Zusatzpaket im DiskStation Manager verfügbar.

[ https://www.synology.com/de-de/dsm/packages/SVN]

SVN (Subversion) auf der Disk Station

Subversion ist eine Versionsverwaltungsoftware, die das gemeinsame Arbeiten an dem Code für einen Nutzer oder große Gruppen wesentlich vereinfacht. Subversion übernimmt hierbei das Versionsmanagement des Code.

Installation

Voraussetzungen

Netzwerkfreigabe und Synology-Benutzer anlegen

Im Disk Station Manager (Web GUI) eine neue Netzwerkfreigabe (gemeinsamen Ordner) Namens "svn" erstellen. Dabei wird von dem System der SVN Arbeitsordner /volume1/svn angelegt.

Einen neuen Synology Benutzer Namens "svnowner" ohne Passwort anlegen und ihm Schreib-Leserechte für das Verzeichnis "svn" freigeben. Für den Benutzer sollen am besten alle weiteren Freigaben versperrt bleiben. Zur Not müssen die Rechte nachträglich angepasst werden. Oft sind die falschen Rechte bei den Dateien und Verzeichnissen ein Grund dafür, dass der Server nicht startet.

Neus SVN Repository anlegen und konfigurieren

Einloggen mit Putty als root mit Adminpasswort.

Die Prozentzeichen (%...%) deuten auf eine Variable die Sie entsprechend Ihren Bedürfnissen jedoch ohne Prozentzeichen ersetzen sollen.

login as: root
password: %Adminpasswort%

Auf der DiskStation IPKG Pakete aktualisieren und das Paket SVN installieren.

$ ipkg update
$ ipkg install svn

Wechseln ins Verzeichnis /volume1/svn

cd /volume1/svn


Das SVN-Verzeichnis erstellen. "my_svn_repo" ist der Name von unserem neuen Repository. Wichtig - vollständigen Pfad angeben.

svnadmin create /volume1/svn/%my_svn_repo%

Benutzerrechte für das Verzeichnis /volume1/svn/%my_svn_repo% anpassen. Rechte mit dem Befehl "dir" überprüfen. Alle Dateien sollen dem User "svnowner" und der Gruppe "users" gehören.

chown svnowner:users -R %my_svn_repo%
dir

In das Verzeichnis /volume1/svn/%my_svn_repo% wechseln. Eventuell die Struktur wieder mit dem Befehl "dir" kontrollieren.

cd %my_svn_repo%
dir

In das Unterverzeichnis "conf" in unserem neu erstellten SVN-Repository wechseln. Wieder mit "dir" die Struktur kontrollieren.

cd conf
dir

Datei mit der Benutzerdatenbank "/volume1/svn/%my_svn_repo%/conf/passwd" mit dem Editor VI öffnen.

Bemerkung: Die Konfigurationsdateien können auch in dem freigegebenen Ordner "svn" mit einem Windows-Editor wie Notepad++ bearbeitet werden.

vi passwd

In die Datei 'passwd' zukünftige SVN-Benutzer eintragen. Im Klartext User und Passwort der Benutzer für das Repository eingeben.

%mein_svn_user1% = %meinpasswort123%
%mein_svn_user2% = %meinpasswort456%
karlheinz = geheim
...

Editiermodus verlassen, in den Befehlsmodus wechseln.

Taste "ESC"

Datei speichern und VI-Editor verlassen (write & quite).

:wq

Für begrenzte Schreib/Leserechte der Datei "passwd" sorgen.

chmod 600 passwd

Konfigurationsdatei des neuen SVN Repository "/volume1/svn/%my_svn_repo%/conf/svnserve.conf" mit dem Editor VI anpassen.

vi svnserve.conf

Editor VI in den Editiermodus umschalten.

i

Folgendes auskommentieren bzw. ergänzen:

  1. Rechte für anonyme Benutzer einschränken.
  2. Angemeldeten Benutzern den Zugang erlauben.
  3. Bezeichnung der Passwortdatei in der die Benutzer aufgelistet sind.
  4. Bezeichnung des Repository - optional
anon-access = none
auth-access = write
password-db = passwd
realm = Mein Repository

Editiermodus verlassen, in den Befehlsmodus wechseln.

Taste "ESC"

Datei speichern und VI-Editor verlassen (write & quite).

:wq

Das Repository ist nun einsatzbereit. Der Server muss noch konfiguriert werden.

Konfiguration des Servers

Einrichtung von inet-Daemon

Mit dem Editor VI die Datei /etc/inetd.conf bearbeiten:

vi /etc/inetd.conf

Folgende Zeile einfügen

svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn

Speichern und schließen:

: wq

Datei "services" anpassen

Mit dem Editor VI die Datei /etc/services bearbeiten:

vi /etc/services

Am Ende folgende Zeilen einfügen:

svn             3690/tcp                        #Subversion
svn             3690/udp                        #Subversion

Speichern und schließen:

: wq

Neustart

Nach der Installation ist ein Neustart der DiskStation erforderlich. Das geht manuell per WebGUI oder mit dem Befehl:

reboot

SVN auf Arbeitscomputer aufrufen

Am besten geht das mit dem Programm Tortoise. Es ist ein mächtiges Werkzeug, ist kostenlos und kann einfach runterladen und auf den Arbeitscomputer installieren werden.

Nach dem Tortoise auf Ihrem Arbeitscomputer installiert ist kann man per Rechtsklick auf dem Desktop oder Ordner das Kontextmenü aufrufen und dort den Punkt "SVN Checkout" aufrufen.

Der SVN-Pfad den man eingeben muss lautet folgendermaßen:

svn://%ip_von_DS%/%my_svn_repo%

Man wird nach dem Benutzernamen und Passwort gefragt. Hier geben Sie den Benutzernamen denn Sie in der Datei mit der Benutzerdatenbank /volume1/svn/%my_svn_repo%/conf/passwd eingetragen haben. Anschließend wird der Ordner an der entsprechenden Stelle erzeugt.

Nun kann man mit dem SVN Repository arbeiten. Ihr könnt die Dateien in den Ordner hineinpacken und mit dem Rechtsklick auf Datei oder Ordner und dem Kontextmenu "SVN übertragen" die Dateien auf den Server hochladen oder mit "SVN aktualisieren" herunterladen.

SVN Repository löschen

Wird ein SVN Repository nicht mehr benötigt kann es mit dem einfachen Befehl "rm -r %my_svn_repo%" gelöscht werden. Das Löschen über die Netzwerkfreigabe reicht ebenfalls aus.

In das SVN Verzeichnis wechseln. Verzeichnisstruktur mit "dir" kontrollieren. Nicht mehr benötigtes Repository löschen.

cd /volume1/svn
dir
rm -r %my_svn_repo%"

Mit dem SVN Repository auf einen anderen Ort umziehen

Beim Systemwechsel, Neuinstallation der DiskStation OS ist es notwendig das Repository zu sichern und wieder neu einzuspielen.

Mit dem Befehl "svnadmin dump..." wird eine Kopie des SVN Repositorys erstellt. Bei diesem Beispiel wird die Dump-Datei im vorher freigegebenen Ordner "public" gespeichert.

svnadmin dump /volume1/svn/%my_svn_repo% > /volume1/public/%my_svn_repo%.dump

Wiederherstellen auf dem neuen Ort geht mit dem Befehl "load". Das Ziel SVN Repository "my_svn_repo" muss bereits existieren.

svnadmin load /volume1/svn/%my_svn_repo% < /volume1/public/%my_svn_repo%.dump

WebSVN installieren

Aktuelle Version von WebSVN herunterladen und in den Ordner /web/websvn entpacken. Es wird empfohlen die Datei INSTALL.TXT durchzulesen. bei der Version 2.3.2 liegt die unter "/doc/install.html". Damit die Anwendung gestartet werden kann muss die Konfigurationsdatei angelegt werden. Dafür im Ordner /include eine Kopie der Datei distconfig.php anlegen und in config.php umbenennen.

Die Datei /web/websvn/include/config.php wie folgt ergänzen:

1. Folgende Zeile hinzufügen ( SVN läuft im Ordner /opt/bin).

$config->setSVNCommandPath('/opt/bin');

2. SVN Repository hinzufügen (etwa bei der Zeile 70). Es können mehrere Repositorys untereinander eingetragen werden.

$config->addRepository('Mein repository','file:///volume1/svn/%my_svn_repo%');

Weitere Einstellungen in der Datei nach Bedarf ändern.

Damit WebSVN den Server erreichen kann müssen die PHP Konfigurationsdateien angepasst werden. Sonst beim Aufruf der Adresse http://%ip_von_DS%/websvn/ bekommt man die Fehlermeldung mit open_basedir.

In der Datei /usr/syno/etc/php.ini den eintrag safe_mode_execdir entfernen.

# WebSVN
# safe_mode_exec_dir = /usr/syno/bin
safe_mode_exec_dir =

Unter DSM 3.0 muss der Eintrag "open_basedir, PHPINI_BASEDIR_DEF" in der Datei /usr/syno/etc/php/user-setting.ini erfolgen (Nicht getestet, Sehe http://forum.synology.com/wiki).

Da DSM 2.3 die Datei php.ini bei dem Start überschreibt muss der Eintrag PHPINI_BASEDIR_DEF im Skrips /usr/syno/etc/rc.d/S97apache-user.sh geänder werden.

# WebSVN
# PHPINI_BASEDIR_DEF="/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:${PHPINI_BASEDIR_SERV}"
PHPINI_BASEDIR_DEF="/usr/bin/php:/opt/bin:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:${PHPINI_BASEDIR_SERV}"

Apache neu starten.

/usr/syno/etc/rc.d/S97apache-user.sh restart


Nun kann man das angelegte Repository unter der Adresse öffnen:

http://%ip_von_DS%/websvn/

Probleme und Bemerkungen der User

Einmaliges Starten des Servers, geht bei Neustart verloren. Auf Konsole aufrufen:

svnserve -d -r %my_svn_repo%

Start des SVN-Servers bei Systemstart:

Nach dieser Anleitung vorgehen und in das eigene Bootscript obigen Code einfügen.

Vorbemerkung: SVN ist erfahrungsgemäß recht ressourcenhungrig. Darum ist es sinnvoller den SVNserver-Daemon nicht die ganze Zeit am Laufen zu haben, sondern nur zu starten, wenn er benötigt wird. Das funktioniert unter Linux/Unix mit dem inet-Daemon. (...kann ich nicht bestätigen)

Bei mir funktionierte der Start mittels inetd nicht auf Anhieb. Das Problem wurde anscheinend auch hier beschrieben. Es half den inet-Daemon neu zu starten:

/usr/syno/etc/rc.d/S03inetd.sh stop
/usr/syno/etc/rc.d/S03inetd.sh start

Links