CoreCP

Een testomgeving maken

Een testomgeving — meestal staging genoemd — is een complete tweede kopie van je website op een eigen adres, waar je dingen stuk mág maken. Probeer het nieuwe thema, werk die plugin bij die je niet vertrouwt, herschrijf de afrekenpagina. Ni

Geschreven voor: Klant, Reseller, Beheerder

Een testomgeving — meestal staging genoemd — is een complete tweede kopie van je website op een eigen adres, waar je dingen stuk mág maken. Probeer het nieuwe thema, werk die plugin bij die je niet vertrouwt, herschrijf de afrekenpagina. Niemand kijkt mee, en je echte site merkt er niets van.

Ben je tevreden, dan duw je de onderdelen die je wilt terug naar de live site. Díe laatste stap heeft de scherpe rand, en het grootste deel van deze pagina gaat daarover — want de eerlijke uitleg is niet de uitleg die de meeste gereedschappen geven.

De kopie maken

Je geeft hem een naam — bijna altijd een subdomein van je eigen site, zoals staging.jouwsite.nl — en het paneel doet de rest:

  1. Het adres wordt aangemaakt, met een eigen certificaat, zodat de kopie net als het origineel op https:// staat.
  2. Je bestanden worden gekopieerd. Alles: WordPress, je thema, je plugins, je afbeeldingen.
  3. Er komt een tweede database, gevuld met een kopie van je gegevens.
  4. Elk webadres binnenín de kopie wordt herschreven van jouwsite.nl naar staging.jouwsite.nl, op een manier die je instellingen niet beschadigt. Verderop meer daarover, want hier gaan de goedkope gereedschappen de mist in.
  5. Vier dingen worden veranderd zodat het een testsite wordt en geen tweede live site — zie de volgende paragraaf.

Een grote site kost een paar minuten. Op sommige servers is het kopiëren van de bestanden ogenblikkelijk, omdat het bestandssysteem de gegevens tussen de twee kan delen tot er in één van beide geschreven wordt.

Je kunt de kopie altijd opnieuw maken: "verversen vanaf live" gooit de kopie weg en neemt een nieuwe. Wat je op de kopie had staan is dan weg, dus er wordt eerst een herstelpunt van de kopie gemaakt — voor het geval dat.

Wat het een testsite maakt en geen tweede live site

waarom het uitmaakt
Nieuwe beveiligingssleutelsWordPress leidt je inlogcookie eruit af. Deel je ze, dan betekent ingelogd zijn op de live site óók ingelogd zijn op de kopie, als dezelfde persoon — en uitloggen bij de één logt je uit bij de ander.
Zoekmachines wordt gevraagd weg te blijvenanders vindt Google de kopie, indexeert hem, en concurreert die met je echte site om je eigen naam.
Geplande taken staan uithier lopen mensen tegenaan. Een kopie van een webshop draait dezelfde geplande taken als het origineel: verlengingsherinneringen, mails over vergeten winkelwagens, abonnementsincasso's. Naar je échte klanten.
Gedeelde caches worden niet meegekopieerdtwee sites die één cache delen betekent dat de kopie jouw live pagina's serveert en, erger, andersom.

De eerste drie worden voor je gedaan. Eén ding is het nog waard te weten: alleen geplande mail staat uit. Een plugin die een mail verstuurt terwijl jij op de kopie zit te klikken, verstuurt hem gewoon. Als dat uitmaakt — een winkel, een ledensite — zet er dan óók een wachtwoord op. Dat vraagt om naam en wachtwoord nog vóórdat WordPress start, zodat er niets bij de kopie komt wat jij niet zelf doet.

"Vraag zoekmachines weg te blijven" is een verzoek, geen muur. Het wachtwoord is de muur.

Waarom de adressen niet zomaar vervangen kunnen worden

Je database staat vol met je eigen webadres: in instellingen, in menu's, in widgets, in de thema-opties, in elke plugin die een link bewaart.

WordPress bewaart daar veel van in een ingepakt formaat dat vastlegt hoe lang elk stukje tekst is. Vervang je jouwsite.nl door staging.jouwsite.nl met een platte zoek-en-vervang, dan wordt de tekst langer terwijl de vastgelegde lengte dat niet wordt — en kan WordPress het niet meer teruglezen. Het resultaat is een site waarvan de voorpagina er prima uitziet en waarvan de widgets, thema-instellingen en pluginconfiguratie stilletjes verdwenen zijn. Je komt er weken later achter.

Het paneel gebruikt hiervoor WordPress' eigen gereedschap, dat elke waarde uitpakt, aanpast en weer correct inpakt. Het raakt bovendien met opzet niet de kale jouwsite.nl op zichzelf aan — alleen volledige webadressen — want je e-mailadressen bevatten hem ook, en info@jouwsite.nl mag geen info@staging.jouwsite.nl worden.

Terugduwen naar de live site

Twee helften, en je kiest ze los van elkaar.

De bestanden

Je thema, je plugins, WordPress zelf. Dit is de veilige helft: niets van wat je bezoekers schreven staat in een bestand. Een themawijziging, een aangepaste template, een plugin die je installeerde en instelde — bestanden.

Wat er nooit meegaat, wat je ook kiest:

  • Je configuratiebestand. Daar staan de databasegegevens van de kopie in. Dat meesturen zou je live site naar de testdatabase laten wijzen, en dat is het ergste wat deze knop zou kunnen doen.
  • Je .htaccess. Daar staan de beveiligingsregels in, en het wachtwoord dat je op de kopie hebt gezet. Dat meesturen zou je live site achter het wachtwoord van de kopie zetten.
  • Je uploadmap. Foto's die je ná het maken van de kopie op de live site hebt gezet, staan niet op de kopie — de map overschrijven zou ze wissen. Er is een schakelaar voor als je het toch wilt.

De gegevens

Berichten, pagina's, bestellingen, klanten, reacties, instellingen — alles wat in de database staat. En nu het stuk dat je twee keer moet lezen:

Gegevens terugduwen is overschrijven, geen samenvoegen. Niets voegt twee WordPress-databases samen. Dit paneel niet, Plesk niet, de betaalde gereedschappen niet. Beide kanten hebben hun eigen nummering, beide bewaren hele instellingenschermen in één ingepakte waarde, en nergens staat vastgelegd welke van twee versies van een regel de nieuwere bedoeling is en niet slechts het latere opslaan. Alles wat zichzelf "synchroniseren" noemt, kiest per tabel een kant en hoopt er het beste van.

Dus kies je welke delen je overschrijft:

keuzewat het doet
Niets (standaard)alleen bestanden; je live gegevens blijven zoals ze zijn
Instellingenalles behalve je berichten, pagina's en gebruikers. Dit is meestal degene die je wilt: de plugininstellingen die je op de kopie veranderde gaan live, en de berichten en klanten die intussen op de live site binnenkwamen blijven staan
Allesde hele database. Alleen goed als er sinds de kopie niets op de live site is gebeurd
Zelf kiezenals je precies weet welk deel je hebt veranderd

Drie zinnen die het paneel op het scherm zet, en die het herhalen waard zijn:

  • Een thema of template aangepast? Duw alleen bestanden terug.
  • Krijgt je site reacties, aanmeldingen of bestellingen? Duw de database niet terug.
  • Heb je een webshop? Duw nóóit een database terug die ouder is dan je laatste bestelling. Bestellingen, voorraad en klantaccounts staan er allemaal in.

"Dit is er op je live site veranderd"

Dit is het stuk dat de meeste gereedschappen helemaal niet doen.

Op het moment dat de kopie gemaakt wordt, neemt het paneel een vingerafdruk van elk onderdeel van je live database. Vóór je iets terugduwt, neemt het de vingerafdrukken opnieuw en vergelijkt ze. In plaats van "weet je het zeker?" krijg je dus:

Deze tabellen zijn op jouwsite.nl gewijzigd sinds je de kopie maakte: je berichten, je instellingen.

En als één daarvan een onderdeel is dat je op het punt staat te overschrijven, stopt het terugduwen en wordt gezegd welk. Je mag alsnog doorzetten als je weet wat je doet — of, bijna altijd goedkoper, de kopie verversen vanaf de live site en je werk opnieuw doen bovenop wat er nu staat.

Iets wat veranderd is en wat je niet overschrijft, wordt genoemd en houdt niets tegen. Een waarschuwing die alles tegenhoudt, is een waarschuwing die mensen leren weg te klikken.

Terug kunnen

Elke keer dat je terugduwt, wordt eerst een herstelpunt van je live site genomen, en dat is geen keuze. Bestanden én database, vóór er één byte overschreven wordt. Kon er geen herstelpunt gemaakt worden, dan gaat het terugduwen niet door.

Gaat er daarna toch iets mis, dan zet je het terug — de hele site, in één handeling — uit dezelfde lijst herstelpunten die je bij updates gebruikt. In het verslag van het terugduwen staat precies welk herstelpunt het genomen heeft.

Een update eerst op de kopie proberen

Zodra er een kopie bestaat, krijgen updates een veiliger route. Het paneel kan:

  1. de kopie verversen vanaf je live site, zodat het de site van vandaag test;
  2. de update op de kopie draaien, met alle gebruikelijke controles;
  3. en pas als de kopie gezond blijft, dezelfde update op de live site draaien.

Gaat de kopie stuk, dan wordt je live site niet aangeraakt — en de kapotte kopie blijft staan zoals hij is, zodat jij of je hostingprovider kan kijken wat er misging.

Gewone updates zetten zichzelf al terug als ze iets breken, binnen ongeveer een minuut. Dit is voor het geval waarin zelfs een minuut te lang is: een winkel in de uitverkoop, een site die morgen gedemonstreerd wordt.

Weer opruimen

Een testomgeving is een volledige tweede website: hij kost schijfruimte en een database. Heb je hem niet meer nodig, verwijder hem dan zoals elke andere site. De kopie weghalen verandert niets aan je live site — het verband tussen de twee is een aantekening die het paneel bijhoudt, geen koppeling binnenin WordPress.

Vanaf de opdrachtregel

Heb je SSH-toegang:

# Kijk wat er zou gebeuren, zonder dat er iets gebeurt.
corectl wp clone jouwsite.nl --to staging.jouwsite.nl --dry-run on

# Maak de kopie. Met --protect on komt er ook een wachtwoord op.
corectl wp clone jouwsite.nl --to staging.jouwsite.nl --protect on

# Ververs hem vanaf de live site.
corectl wp clone jouwsite.nl --to staging.jouwsite.nl --replace on

corectl wp clones                             # welke kopieën er zijn, en waarvan
corectl wp drift staging.jouwsite.nl          # wat er sindsdien op live veranderd is

Terugduwen:

# Altijd eerst: het plan, wat er op live veranderd is, en het advies.
corectl wp push staging.jouwsite.nl --tables settings --dry-run on

# Alleen bestanden. Je live gegevens blijven zoals ze zijn.
corectl wp push staging.jouwsite.nl

# Instellingen, met behoud van je berichten en je klanten.
corectl wp push staging.jouwsite.nl --tables settings

corectl wp snapshots --site jouwsite.nl       # inclusief die van vóór het terugduwen

Een update eerst op de kopie proberen:

corectl wp safe-update jouwsite.nl --mode clone --policy on

Zie ook

  • Je WordPress-sites
  • Wat je zelf kunt regelen
  • Waar een website draait