Een WordPress-site verhuizen naar een nieuwe VPS
Een WordPress-site verhuizen betekent drie dingen verhuizen: de bestanden (vooral de map wp-content), de database en het DNS-record van je domein. De makkelijkste route is een migratieplug-in. Met de hand kopieer je de bestanden, exporteer je de database, laad je die op de nieuwe server en corrigeer je de adressen als ze zijn veranderd.
De volgorde is hetzelfde, welke methode je ook kiest: back-up maken, testen op de nieuwe server en DNS als laatste doen. Zet de oude server niet uit voordat de nieuwe site werkt.
Voordat je begint
- Maak een volledige back-up. Bewaar een kopie van de bestanden en de database op je eigen computer. Ook de officiële WordPress-migratiegids zegt dat je vóór elke wijziging aan de database een back-up moet maken.
- Zoek de grootte uit. Hoeveel MB zijn de map
wp-contenten de database? Dat bepaalt welke methode bij je past. - Vergelijk versies. Werkt de PHP-versie op de nieuwe server met je oude plug-ins? Werk een niet-compatibele plug-in bij voordat je verhuist.
- Verlaag de TTL. Zet een dag of twee vóór de overstap de TTL van de DNS-records van je domein op 300 seconden. Zo blijft het oude adres niet lang in caches hangen.
- Controleer waar je e-mail staat. Het A-record wijzigen raakt je MX-records niet. Draait je mail op de server van de site, dan moet die apart worden verhuisd.
Methode 1: verhuizen met een plug-in
Migratieplug-ins bundelen de bestanden en de database in één pakket en pakken dat op de nieuwe site uit, en de meeste corrigeren ook de adressen. Er zijn drie gangbare werkwijzen:
- Een pakket in de browser uploaden. Je maakt het pakket op de oude site, installeert dezelfde plug-in op de nieuwe WordPress en uploadt het pakket (All-in-One WP Migration werkt bijvoorbeeld zo). Deze werkwijze loopt tegen de uploadlimiet van de server aan.
- Het pakket via SFTP neerzetten. Plug-ins zoals Duplicator vragen je het archief en een bestand
installer.phpnaar een lege map op de nieuwe server te kopiëren en daarnainstaller.phpin een browser te openen. Je moet de database en de gebruiker ervan van tevoren aanmaken. Verwijder als je klaar bentinstaller.phpen het archief, want iedereen die het adres kent, kan het installatieprogramma opnieuw draaien. - Herstellen vanaf externe opslag. Met een back-upplug-in zoals UpdraftPlus koppel je dezelfde cloudopslag op de nieuwe site en vind je de back-up via de link "Rescan remote storage". Je uploadt het grote bestand dus nooit via de browser.
De limiet van 64 MB op de kant-en-klare WordPress-server
Op de kant-en-klare WordPress-server van Seturack kun je in één keer maximaal 64 MB uploaden. Plug-ins die een pakket via de browser aannemen, lopen tegen die limiet aan. Is je pakket groter, gebruik dan het herstel vanaf externe opslag of verhuis de site met de hand. Omdat de kant-en-klare app in Docker draait, staan de bestanden niet waar ze bij een klassieke installatie zouden staan. Voor een grote site die je met de hand verhuist, is een schone Ubuntu-server met Apache of Nginx voorspelbaarder.
Methode 2: met de hand verhuizen
Deze stappen gelden voor een klassieke installatie waarbij de bestanden in /var/www/html staan. Draai je WP-CLI als root, voeg dan --allow-root toe aan de opdrachten. Op de oude server, in de WordPress-map:
- Exporteer de database buiten de webmap, want een dump die daarin blijft staan, kan door iedereen die het adres kent worden gedownload:
wp db export ~/site.sql. Zonder WP-CLI gebruik jemysqldump -u USER -p DATABASE > ~/site.sql. - Archiveer de bestanden met
tar -czf ~/files.tar.gz . - Kopieer beide naar de nieuwe server met
scp ~/site.sql ~/files.tar.gz user@NEW_IP:~/
Op de nieuwe server:
- Maak een lege database en een gebruiker ervoor aan.
- Pak de bestanden uit in de webmap met
tar -xzf ~/files.tar.gz -C /var/www/html - Werk de databasenaam, gebruiker en het wachtwoord in
wp-config.phpbij met de nieuwe waarden. Geef het eigendom aan de gebruiker van de webserver (www-dataop Debian en Ubuntu). - Importeer de database met
wp db import ~/site.sql. De opdracht leest zijn instellingen uitwp-config.phpen maakt de database niet voor je aan.
Blijft het domein hetzelfde, dan is geen adrescorrectie nodig. Verandert het, vervang dan het oude adres door het nieuwe. Probeer het eerst met --dry-run en laat de kolom guid met rust:
wp search-replace 'https://old.com' 'https://new.com' --skip-columns=guid --dry-run
Ziet de uitvoer er goed uit, voer de opdracht dan opnieuw uit zonder --dry-run. Doe geen gewoon zoeken-en-vervangen op de database, want geserialiseerde gegevens kunnen kapotgaan. WP-CLI verwerkt die gegevens correct.
Testen op de nieuwe server voordat je DNS omzet
Voeg het IP-adres van de nieuwe server en je domein toe aan het bestand hosts op je computer. Het bestand staat op Windows in C:\Windows\System32\drivers\etc\hosts en op macOS en Linux in /etc/hosts:
203.0.113.10 example.com www.example.com
Vanaf dat moment opent alleen jouw browser de nieuwe server, terwijl iedereen nog de oude ziet. Probeer het inloggen, de pagina's, afbeeldingen en formulieren en verwijder daarna de regel. Een HTTPS-certificaat wordt meestal pas uitgegeven zodra DNS naar de nieuwe server wijst.
De DNS-omzetting
- Wordt er voortdurend naar de site geschreven (een webshop, lidmaatschappen, reacties), zet de oude site dan in onderhoudsmodus, maak nog een laatste keer de database en draag die over. Anders gaan bestellingen die tijdens de overstap binnenkomen verloren.
- Laat in je DNS-paneel het A-record naar het nieuwe IP-adres wijzen en doe hetzelfde voor www. Het artikel over je eigen domein koppelen toont de stappen.
- Met een lage TTL verspreidt de wijziging zich snel. Sommige netwerken houden het oude record mogelijk langer vast.
- Controleer of HTTPS op de nieuwe server werkt.
- Gaat alles goed, zet de TTL dan terug op de oude waarde. Houd de oude server nog een paar dagen en zet hem daarna uit.
Checklist na de verhuizing
- Open Settings > Permalinks en klik op Save om de herschrijfregels te vernieuwen.
- Open de homepage, een bericht, een afbeelding en het contactformulier.
- Zoek naar waarschuwingen over gemengde inhoud (mixed content). Het corrigeren van de adressen lost de meeste op.
- Test het versturen van e-mail en controleer de instellingen van je SMTP-plug-in.
- Leeg de cache van je cacheplug-in.
- Verwijder
~/site.sqlen~/files.tar.gzop beide servers. Beide bevatten gevoelige gegevens. - Controleer onder Settings > Reading dat het vakje dat zoekmachines ontmoedigt niet is aangevinkt.
Verhuis je met een plug-in, dan is beginnen met een lege WordPress makkelijker. Een server met WordPress voorgeïnstalleerd is in ongeveer 3,5 tot 4 minuten klaar. Bekijk de pagina WordPress-server.
Reacties0
Nog geen reacties
Deel als eerste uw gedachten.
Meld u aan of registreer u om een reactie te plaatsen.