Direct naar de tekst

Subversion beschikbaar maken via Apache

Geschreven door Dennis Burger op

Dit artikel is een uitbereiking op Subversion versie beheer op Mac OS X en het artikel WebDAV op Mac OS X Leopard.

We gaan er vanuit dat je met behulp van bovenstaande artikelen dat Apache draait en Subversion server ingericht is. Als voorbeeld project nemen we weer de vogelfotografie website van de fictieve persoon kees.

Het doel

Maak de Subversion repository beschikbaar met behulp van WebDAV in Apache. Met een Apache username en password is het mogelijk om via internet een checkout te doen van bijvoorbeeld een website (deze wordt gedownload naar de remote computer). Hier kun je dan aan werken en de wijzigingen terug sturen naar de Subversion server als een nieuwe revisie.

Apache 2.x configuratie backup maken

Voordat we dingen eventueel stuk maken gaan we eerst een backup maken van de Apache webserver configuratie. Open de Terminal applicatie (/Applications/Utilities/Terminal). We gaan eerst een backup maken van het Apache configuratie bestand.

Ga eerst naar de map waar het configuratie bestand staat:

cd /etc/apache2

Vraag een lijst met bestanden op. Deze stap is niet perse nodig:

ls -l

Hier zien we welk bestand we moeten hebben, namelijk httpd.conf. Typ het volgende commando in en geef een administrator wachtwoord op.

Backup maken

sudo cp httpd.conf httpd.conf_backup

Vraag met ls -l opnieuw een lijst op en we zien dat er een backup bestand is gemaakt. Voor degene die met de Unix terminal overweg kunnen weten hoe ze met de commando’s rm en mv de backup weer terug kunnen zetten.

Unix bestanden bewerken met TextWrangler

Download eerst het gratis TextWrangler of gebruik zijn commerciele broer BBEdit. Hiermee kunnen we straks makkelijk aanpassingen maken aan Unix configuratie bestanden op onze Mac. TextWrangler of BBedit zijn echte Mac OS X text-editors. Hiermee kun je ook website met de hand maken, PHP programmeren en nog veel meer op het gebied van text-editten.

Start TextWrangler (of BBEdit) en laat het de command line tools installeren. We kunnen nu aan de slag. Als je gebruik maakt van BBEdit is het commando om bestanden te bewerken (vanuit de Ternimal) bbedit in plaats van edit welke TextWrangler gebruikt.

Apache configuratie aanpassen

Open de Terminal (/Applications/Utilities/Terminal) en voer het volgende Unix commando in om in TextWrangler het Apache configuratie bestand te openen. Dit kun je ook gewoon via File > Open hidden … in TextWrangler doen, als je weet waar het bestand staat.

edit /etc/apache2/httpd.conf

Ga met Apple'tje + j naar regel 467. Daar staat de volgende regel. Deze moeten we un-commenten. Haal het haakje (#) weg voor deze regel.

WebDAV aanzetten

Include /private/etc/apache2/extra/httpd-dav.conf

Nu zal WebDAV aangezet worden bij de volgende herstart van de Apache webserver. Open vervolgens dit nieuwe configuratie bestand. Daarin gaan we aangeven welke Subversion repository beschikbaar wordt via WebDAV en Apache. Dit kan in TextWrangler of met een Terminal commando.

edit /private/etc/apache2/extra/httpd-dav.conf

Dit is een basis configuratie bestand waar ook een voorbeeld in staat van een Subversion repository.

Subversion voorbeeld configuratie

Vervang de inhoud van dit bestand met het volgende voorbeeld configuratie bestand:

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

########################################
## Default
########################################

# Webdav and Subversion modules
LoadModule dav_svn_module		libexec/apache2/mod_dav_svn.so
LoadModule authz_svn_module		libexec/apache2/mod_authz_svn.so

########################################
## Websites
########################################

# Volelfotografie svn repository
<Location /svn/vogelfotografie> 
	DAV svn 
	SVNPath /Library/Subversion/Repository/vogelfotografie

	# Set auto mime-type conversion (for simple HTML mime-type headers)
	ModMimeUsePathInfo on

	# Basic Apache realm authentication
	AuthType Basic 
	AuthName "Vogelfotografie Subversion repository"
	AuthUserFile /etc/apache2/passwords/.htpasswd 

	# only authenticated users may access the repository 
	Require valid-user	
</Location>

Vogelfotografie website van Kees

Als voorbeeld nemen we weer de vogelfotografie website van Kees. In het bestandje staan de benodigde configuratie regels om webDAV aan te zetten en tevens een voorbeeld van een Subversion repository die beschikbaar wordt gesteld. Deze staat op de volgende locatie:

/Library/Subversion/Repository/vogelfotografie

Apache password bestand aanmaken

In het stukje Location wordt een autheticatie systeem opgenomen, een zogenaamde realm. Zodra we straks bijvoorbeeld op een Windows XP computer een checkout gaan maken, zal Apache eerst een om gebruikersnaam en wachtwoord vragen alvorens de vogelfotografie repository beschikbaar wordt gesteld.

Maak de volgende map aan als deze nog niet bestaat.

mkdir /etc/apache2/passwords/

Als je nog geen password bestand heb gemaakt voeren we de volgende Unix code uit in de Termminal. Als er al een password bestand staat kun je -c weg laten. Als er al een user kees is zal het wachtwoord overschreven worden.

Deze stap is niet perse nodig als je al een password bestand hebt staan.

htpasswd -c /etc/apache2/passwords/.htpasswd kees

Het htpasswd programma zal voor de gebruiker kees om een wachtwoord aanmaak vragen.

##Apache configuratie testen herstarten

In de Terminal gaan we de Apache configuratie eerst testen om te kijken of we geen fouten hebben gemaakt.

Apache configuratie op syntax controleren

sudo httpd -t

Als er geen fouten in beeld komen kunnen we de Apache server herstarten.

apachectl graceful

Testen op eigen Mac

Nu is de vogelfotografie repository beschikbaar via het IP nummer van onze Mac. Dit kunnen we even testen op onze eigen Mac.

Open een webbrowser, bijvoorbeeld Safari en typ onderstaand adres hierin. Er zal een inlog scherm komen (de realm), vul de gegevens in van de zojuist aangemaakte gebruiker kees (Apache htpasswd van daarnet). Het IP nummer hieronder betekend eigenlijk ‘de computer zelf’.

http://127.0.0.1/svn/vogelfotografie

Als het goed is verschijnt er een lijstje in beeld, met een revisie nummer, van de Subversion repository. Onderin de webbrowser staat heel fancy dat het Powered by Subversion is. Het werkt!! Je kun hier doorheen bladeren en zelfs bestanden downloaden. Een gewone standaard (.html) website is zelfs op deze manier ook direct vanuit Subversion te bekijken als een echte website.

Testen vanaf een Windows computer met checkout

We kunnen nu een checkout doen op de Windows computer van Kees z’n website. We willen dus de website downloaden vanuit de Subversion repository die op de Mac staat.

Achterhaal eerst het IP nummer (intern of extern) van de Mac. Kijk in de Apple'tje > System Preferences > Network wat het IP nummer is van de Mac.

TortoiseSVN plugin voor de Windows Verkenner

Voor Windows bestaat er een geweldige gratis plugin voor het werken met Subversion repositories, genaamd TortoiseSVN. Download dit programma en installeer het op de Windows computer.

Via de rechtermuistoets zijn nu de meest gangbare opties met het werken voor Subversion beschikbaar.

Mac versie

Voor de Mac OS X Finder is er een soortgelijke plugin te downloaden, genaamd SCplugin. Deze werkt opzich wel maar is nog erg buggy en verkeerd al heel lang in beta-fase.

Checkout maken

Maak bijvoorbeeld op de Windows desktop een lege map aan, genaamd vogelfotografie. Hierin willen we een checkout maken van Kees z’n website. Open deze map en klik met de rechtermuistoets, kies voor een checkout.

Vul hier het IP nummer in van de Mac met de extra paden erachter. Vervang onderstaand IP nummer door het goede IP nummer van de Mac.

http://192.168.0.12/svn/vogelfotografie

Weer komt het inlog scherm in beeld. Voorzie dit scherm met de gebruikersnaam kees en het wachtwoord. In de Windows verkenner komen nu alle bestanden van Kees z’n vogelfotografie website te staan. Compleet met mooie icoontjes waaraan je kan zien of Subversion bestanden zijn aangepast.

Het werkt

Geweldig!! Nu kun je op de Windows computer wijzigingen maken en deze via de rechtermuistoets op commit klikken om de wijzigingen (met username en password) weer terug te sturen naar de vogelfotografie repository op de Mac.

SVN Update ophalen

Als Kees achter de Mac werkt en een update wil ophalen van de vogelfotografie website moet hij het volgende doen. Open svnX (zie artikelen die bovenaan genoemd worden), dubbeklik op de working copy naam vogelfotografie die op de Mac staat.

Klik bovenaan in het working copy window op de groene button voor een SVN Update. Vanuit de repository wordt nu de laatste versie opgehaald (welke dus op de Windows computer was gewijzigd) en wordt vermengt / ge-update met de versie die op de Mac staat.

Meerdere repositories beschikbaar stellen

Hiervoor kopieer je het stuk Location van de vogelfotografie website in het configuratie bestand. Pas de paden aan naar de repositories en maak eventueel nieuwe (andere) gebruikers aan met het htpasswd programma in de Terminal.

Vergeet vervolgens niet de Apache server te herstarten met apachectl graceful.