Een testomgeving inrichten

Als u (grote) aanpassingen uitvoert aan uw website, of als u bezig bent met het ontwikkelen van een nieuwe versie van uw site, dan kan het handig zijn om een min of meer gescheiden testomgeving op te zetten. In dit artikel beschrijven we een aantal manieren waarop u dit kunt doen op uw hostingruimte bij NederHost. De exacte manier waarop u een testomgeving inricht is afhankelijk van uw specifieke eisen. Afhankelijk van uw situatie kunt u bepaalde delen uit dit artikel gebruiken voor het inrichten van uw testomgeving.

Bestanden op de webruimte

Een testversie van uw website zet u in een subdirectory onder www (bijvoorbeeld 'test'). U kunt de testversie direct benaderen via een subdirectory (bijvoorbeeld 'http://www.example.com/test/') maar in veel gevallen is het wenselijk de testsite onder een eigen subdomein te brengen. Hiervoor zet u in het .htaccess-bestand in de www-folder het volgende:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www-test\.
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule ^(.*)$ /test/$1 [L]

Dit maakt de site in de subdirectory 'test' beschikbaar als www-test.example.com.

Databases scheiden

U heeft de beschikking over meerdere databases; u kunt 1 van de databases gebruiken voor de testversie van uw website. Databases maakt u eenvoudig vanuit Mijn NederHost. Gebruik voor iedere versie van uw site afzonderlijke gebruikers en wachtwoorden zodat de kans op vergissingen zo klein mogelijk wordt.

Om een database te kopiëren (bijvoorbeeld om uw testdatabase te vullen vanuit uw gewone database) kunt u gebruikmaken van phpMyAdmin. U kunt uw database natuurlijk exporteren en vervolgens deze gegevens importeren in de tweede database. Het is echter ook mogelijk de gegevens tussen de beide databases direct over te zetten. Let op: als u dit niet zorgvuldig doet dan kunt u hierdoor gegevens kwijtraken.

Maak in Mijn NederHost op beide databases een gebruiker met dezelfde naam en hetzelfde wachtwoord met volledige rechten op de database waar u naartoe wilt kopiëren. Gebruik deze gebruiker niet vanuit uw scripts! Vervolgens logt u met deze gebruiker in op https://dbadmin.nederhost.nl/ en kiest u de optie 'Synchronize'. Kies de database waar u van en naar wilt kopiëren en klik op 'Go'. U krijgt nu een overzicht te zien van de wijzigingen die worden doorgevoerd. Controleer alles goed, vink eventueel de optie aan om overige data uit de tabellen te wissen, en klik op 'Synchronize Databases' om de gegevens over te zetten.

Een stagingomgeving opzetten

Een stagingomgeving is een derde versie van uw site, naast de test- en productieomgevingen. Op de stagingomgeving richt u de site in zoals die online moet komen. Bij livegang van uw website wisselt u de staging- en productieversies van uw site om: zo bent u er zeker van dat uw website vrijwel continu beschikbaar is.

Het opzetten van een stagingomgeving valt buiten het kader van dit artikel en we kunnen dit daarom beperkt ondersteunen. Een voor de hand liggende manier om dit op te zetten is door de verschillende versies van uw site in verschillende subdirectories te plaatsen en vervolgens met behulp van symlinks de huidige rol van iedere versie te bepalen. Dit kan dan als volgt:

  • maak onder de www-folder de directories test, a en b
  • maak vervolgens een tweetal symlinks door op de shell de volgende commando's uit te voeren:
    ln -s a staging && ln -s b production
  • zet in de www-folder een .htaccess-bestand met daarin:
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^www-staging\.
    RewriteCond %{REQUEST_URI} !^/staging/
    RewriteRule ^(.*)$ /staging/$1 [L,NC,QSA]
    
    RewriteCond %{HTTP_HOST} ^www-test\.
    RewriteCond %{REQUEST_URI} !^/test/
    RewriteRule ^(.*)$ /test/$1 [L,NC,QSA,S=1]
    
    RewriteCond %{REQUEST_URI} !^/(test|staging|production)/
    RewriteRule ^(.*)$ /production/$1 [L,NC,QSA]

U kunt nu de verschillende versies van uw site in de verschillende subdirectories plaatsen. Als het moment komt om uw nieuwe site online te zetten dan richt u deze helemaal in in de staging-directory en test u deze op www-staging.example.com. Zodra de site naar wens is zet u deze live door vanuit de Unix-shell de volgende commando's uit te voeren:

cp -PT production old
mv -fT staging production
mv -fT old staging

Dit wisselt de productie- en stagingomgevingen om zonder merkbare onderbreking. Als u de commando's herhaalt dan worden de staging- en productieomgevingen weer omgewisseld, dit kunt u gebruiken voor de volgende livegang of om een livegang snel terug te draaien.

Gerelateerde artikelen

Mail-a-form
NederHost biedt een standaardscript aan om eenvoudige formulieren vanaf uw website via e-mail te versturen.
Subdomeinen met mod_rewrite
U kunt subdomeinen die zijn gekoppeld aan uw website eenvoudig laten verwijzen naar bestanden in een bepaalde subdirectory.
Directory afschermen met een wachtwoord
Door een .htaccess-bestand te plaatsen kunt u de toegang tot een directory enigszins beperken.
Bezoekersstatistieken
In Mijn NederHost kunt u bezoekersstatistieken van uw website raadplegen; in dit artikel worden de belangrijkste gegevens toegelicht.