In dieser Anleitung erfahren Sie, wie Sie einen SVN (Subversion) WebDAV-zugänglichen Repository-Server mit Apache und einem CentOS-VPS installieren und konfigurieren. Was ist SVN? Es ist ein zentralisiertes Open-Source-Versionskontrollsystem, das den Verlauf von Dateien und Verzeichnissen in seinen Repositories verfolgen und speichern kann, mit der Möglichkeit, den Verlauf der Datenänderungen zu untersuchen und bei Bedarf einige ältere Versionen der Daten wiederherzustellen.
Für dieses Tutorial verwenden wir einen CentOS 6-basierten VPS, aber die Installation und Konfiguration eines SVN-Repository-Servers, auf den über HTTP mit dem WebDAV-Protokoll zugegriffen werden kann, ist auf jedem anderen Linux-basierten VPS fast gleich.
1. Angenommen, Sie haben Root-Rechte, führen Sie den folgenden Befehl aus, um Ihr System vollständig zu aktualisieren und die erforderlichen Pakete zu installieren.
# yum -y update && yum -y install mod_dav_svn subversion
Als nächstes werden wir die Subversion-Benutzer und -Repositories erstellen und konfigurieren.
2. Um den anfänglichen SVN-Benutzer zu erstellen, verwenden Sie den folgenden Befehl:
# htpasswd -cm /etc/svn_htpasswd user1
es wird den Benutzer ‘user1‘ erstellen und erstellt die ‘/etc/svn_htpasswd’ Datei, die die SVN-Benutzernamen zusammen mit ihren verschlüsselten Passwörtern enthält.
(Um zusätzliche SVN-Benutzer zu erstellen, müssen Sie den ‚-c‘-Schalter von htpasswd weglassen, zum Beispiel:
# htpasswd -m /etc/svn_htpasswd user2
3. Erstellen Sie als Nächstes die Repositories mit den folgenden Befehlen:
# mkdir /var/www/repos # svnadmin create /var/www/repos/test_repo1 # svnadmin create /var/www/repos/test_repo2 # chown -R apache: /var/www/repos/
Damit die Repositories über HTTP zugänglich sind, müssen wir die Subversion-Apache-Konfigurationsdatei konfigurieren.
4. Erstellen oder ändern Sie die Konfigurationsdatei von Subversion ‘/etc/httpd/conf.d/subversion.conf’ wie folgt:
# cat /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/repos AuthType Basic AuthName "Subversion repositories" AuthUserFile /etc/svn_htpasswd Require valid-user AuthzSVNAccessFile /etc/svn_acl </Location>
Starten Sie als nächstes den Apache-Webserver neu, damit die Änderungen wirksam werden. Geben Sie den folgenden Befehl aus, um Apache neu zu laden:
# service httpd restart
( wenn Sie so etwas bekommen: ‘mod_dav_svn.so:undefined symbol:dav_register_provider’ , dann müssen Sie höchstwahrscheinlich die Datei „mod_dav.so“ aktivieren ‘ und ‘mod_dav_fs.so ‘ Apache-Module in seiner Kernkonfigurationsdatei ‘/etc/httpd/conf/httpd.conf’ )
5. Deaktivieren Sie den anonymen Zugriff auf das Repository und aktivieren Sie stattdessen ACL (Access Control List). Fügen Sie dazu die folgenden beiden Zeilen zur ‘svnserve.conf des Repos hinzu ‘ Konfigurationsdatei:
# cat /var/www/repos/test_repo1/conf/svnserve.conf [general] [sasl] ## Disable anonymous access ## anon-access = none ## Enable access control ## authz-db = authz
6. Erstellen Sie die SVN-Zugriffsliste, damit wir den Benutzern unterschiedliche Zugriffsebenen zuweisen können. Zum Beispiel:
# cat /etc/svn_acl [groups] group1 = user1 group2 = user2 group3 = user3, user4 [/] * = r @group1 = rw user1 = rw [test_repo1:/] @group1 = rw @group2 = [test_repo1:/static] @group2 = r [test_repo2:/public] @group3 = rw user2= r
7. Erstellen Sie schließlich die Repository-Strukturen „statisch“, „Dokumentation“ und „Code“ unter dem Repository „test_repo1“.
Erstellen Sie „Vorlagen“-Verzeichnisse mit dem folgenden Befehl:
# mkdir -p /tmp/test_repo1/{code,static,documentation}
Sobald sie erstellt sind, können Sie die Verzeichnisse in das Repository „test_repo1“ importieren, indem Sie den folgenden Befehl ausführen:
# svn import -m 'Testing ...' /tmp/test_repo1/ http://yourdomain.tld/repos/test_repo1/
Nun können Sie über das HTTP-Protokoll unter http://yourdomain.tld/repos/test_repo1/’ auf das neu erstellte SVN-Repository zugreifen . Es erscheint ein Autorisierungsfenster, in dem Sie sich mit dem entsprechenden svn-Benutzer anmelden müssen.
PS. Wenn Ihnen dieser Beitrag gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.