Ga naar inhoud

Blog

CentOS - Installatie van Subversion (SVN) op een subdomein met Plesk

Stap 1. Aanmaken subdomein in Plesk

Het aanmaken van een subdomein (svn.davidvandertuijn.nl) is vrij eenvoudig in het Plesk Control Panel:

Add New Subdomain


Stap 2. Installeren van Subversion
yum install subversion
Stap 3. Installeren van mod_dav_svn

Het WebDAV-protocol maakt het mogelijk om op afstand documenten aan te maken, te veranderen en te verplaatsen op de server.

yum install mod_dav_svn
Stap 4. Het Apache configuratie bestand
# nano /etc/httpd/conf/httpd.conf

Controleer of de volgende modules zijn toegevoegd:

LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
Stap 5. Het Virtual Host configuratie bestand
# nano /var/www/vhosts/svn.davidvandertuijn.nl/conf/vhost.conf <Location /> DAV svn SVNParentPath /var/www/vhosts/davidvandertuijn.nl/subdomains/svn AuthzSVNAccessFile /var/www/vhosts/svn.davidvandertuijn.nl/svn-acl-conf <LimitExcept GET PROPFIND OPTIONS REPORT> SSLRequireSSL AuthType Basic AuthName "Subversion" AuthUserFile "/var/www/vhosts/svn.davidvandertuijn.nl/.htpasswd" Require valid-user </LimitExcept> </Location>

Opmerking:

SVNPath: Een repository.

SVNParentPath : Meerdere repositories.

Configuratie toepassen:

# /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=svn.davidvandertuijn.nl

Herstart de webserver:

# service httpd restart
Stap 6. Authenticatie

Creer een .htpasswd bestand:

# htpasswd -cm /var/www/vhosts/svn.davidvandertuijn.nl/.htpasswd davidvandertuijn
Stap 7. Access Control List
# nano /var/www/vhosts/svn.davidvandertuijn.nl/svn-acl-conf

Een gebruiker toevoegen:

[reponame:repopath] user = access

Standaard heeft een gebruiker geen toegang, access kan zijn lezen (r) of lezen en schrijven (rw).

[test:/] davidvandertuijn = r

Om voor alle gebruikers lezen privileges te geven voor elke repository:

[/] * = r

Een groep toevoegen:

[groups] beheerder = davidvandertuijn [test:/] @beheerder = rw
Stap 8. Een repository toevoegen
# svnadmin create /var/www/vhosts/davidvandertuijn.nl/subdomains/svn/test chown -R apache.apache test

Authenticatie / Authorizatie toevoegen:

# nano /var/www/vhosts/davidvandertuijn.nl/subdomains/svn/test/conf/svnserve.conf anon-access = none auth-access = write password-db = passwd authz-db = authz

Je zal de bestanden passwd en authz moeten wijzigen, dit wijst zich vanzelf.

Stap 9. Testen

Controleren of een HTTP verzoek wordt geweigerd:

403 Forbidden

Controleren of een HTTPS verzoek wordt geaccepteerd

Zelfondertekend rootcertificaat

Een zelfondertekend rootcertificaat kan niet worden gevalideerd maar dat is geen probleem, het belangrijkste is dat de data over SSL wordt verstuurd.

Controleren of de Authenticatie werkt.

Basic Authentication

Controleren of de Subversion Revision wordt getoond.

test - Revision 0: /

Directory Index

Indien er een Directory Index wordt getoond zou het kunnen dat de Virtual Host configuratie niet geaccepteerd wordt, mijn work-arround is om de deze te plaatsen in '/etc/httpd/conf.d/subversion.conf'.

# nano /var/www/vhosts/svn.davidvandertuijn.nl/conf/vhost.conf <Directory /var/www/vhosts/davidvandertuijn.nl/subdomains/svn> DAV svn SVNParentPath /var/www/vhosts/davidvandertuijn.nl/subdomains/svn AuthzSVNAccessFile /var/www/vhosts/svn.davidvandertuijn.nl/svn-acl-conf <LimitExcept GET PROPFIND OPTIONS REPORT> SSLRequireSSL AuthType Basic AuthName "Subversion" AuthUserFile "/var/www/vhosts/svn.davidvandertuijn.nl/.htpasswd" Require valid-user </LimitExcept> </Directory>

Controleren of een Subversion project kan worden uitgechecked en ge-commit.

cd /var/www/vhosts/davidvandertuijn.nl/subdomains/dev # svn checkout svn://svn.davidvandertuijn.nl/test Checked out revision 0. # svn add index.php A index.php # svn commit . -m "Dit is een test commit" Adding index.php Transmitting file data . Committed revision 1.
Overige opmerkingen

Let op: Er is een verschil tussen het path /var/www/vhosts/davidvandertuijn.nl/subdomains/svn en /var/www/vhosts/svn.davidvandertuijn.nl

De authenticatie / autorisatie verloopt nog niet helemaal soepel, ik zal dit artikel daar later nog op bijwerken.


Meer informatie:

HowTos/Subversion - CentOS Wiki

mod_dav: a DAV module for Apache

WebDAV - Wikipedia

Zoeken
Een moment geduld a.u.b....