Verhuizen van WordPress

Ik heb al eerder geschreven over mijn verhuizing van Windows naar Ubuntu en daar heb ik ook gestoeid met meerder sites op één Ubuntu installatie te draaien. Het is allemaal gelukt en natuurlijk moest ik er meteen wat over bloggen. Nu komt nog een laatste blog-post; namelijk mijn WordPress installatie overzetten naar de nieuwe server. Dit wil ik zonder gedoe en zonder het verlies van allerlei reacties. Het is niet ingewikkeld, maar je moet wel wat stappen doorlopen.

Samengevat:

  1. MySQL dump maken op de oude server
  2. Bestanden downloaden van de oude server
  3. Bestanden uploaden naar de nieuwe server
  4. MySQL importeren in de nieuw aangemaakte database


wordpress code

Simpel toch? Hieronder de handleiding;

1. De dump maken van MySQL moet je zelf maar weten. Ik had een Windows server, dus ik gebruikte een grafische admin tool voor MySQL. Je kan het eventueel ook via PHPMyAdmin proberen, maar ik heb met grote bestanden slechte ervaringen daarmee. Ik plaatste de dump op een plek waar ik met mijn FTP programma bij kan.

2. Download alles van de server, een goede FTP programma download alleen de verschillen als je het al een keer gedownload hebt. Ideaal als je WordPress installatie intussen 1Gb is met alle plaatjes en toebehoren.

3. Upload de files en het dump bestand naar de nieuwe server. Je kan hier lezen hoe een plekje op een server aanmaakt. Vooral handig als je meerdere websites draait op de server.

4. Op de nieuwe server maak je een nieuwe database, met een nieuwe user en wachtwoord aan voor de WordPress installatie. Dit kan je natuurlijk het makkelijkst doen via PHPMyAdmin. Kan je meteen de gebruiker op naam@localhost zetten voor security redenen. Dan kan alleen de server zelf gebruik maken van de inlog en dat is precies wat WordPress via Apache doet; lokaal werken.

Daarna maak je via SSH verbinding naar je nieuwe server en importeer je de net ge-uploade file in je net aangemaakte MySQL database.

mysql -u root -p database_name < file.sql

Uiteraard moet je dan wel je root wachtwoord weten, je kan ook een andere user gebruiken (bijvoorbeeld die je net hebt aangemaakt om te gebruiken met Wordpress. De prompt lijkt even stil te staan, tijdens de import, daarna kan je in PHPMySQL checken of de database is gevuld.

Als je hiermee klaar bent, update dan even de hele WordPress installatie. Niet vergeten de nieuwe database gegevens in wp-config.php te zetten.

Nog een notities aan mezelf en eenieder die hier via Google komt.
Ik had mijn vader zijn blog verhuisd. Ik had de tabel prefix (table prefix) aangepast omdat hij niet meer een database met anderen hoefde te delen. Helaas kon ik toen niet meer inloggen in het admin dashboard van WordPress. Nieuwe user aanmaken, niets help. Ik kreeg steeds:

You do not have sufficient permissions to access this page.
Je hebt onvoldoende rechten voor toegang van deze pagina.

En alle rechten stonden echt goed. Wat blijkt? In een tweetal tabellen staat de prefix gewoon opgenomen. Klopt dit niet, heb je ineens niet meer toegang tot je server. Grom. Even googlen, het volgende uitvoeren in PHPMyAdmin en voilà, het werkt weer.

UPDATE new_usermeta
SET meta_key = REPLACE(meta_key,'old_','new_');

UPDATE new_options
SET option_name = REPLACE(option_name,'old_','new_');

Waarbij new_ de nieuwe prefix is en old_ de oude. Uiteraard.

Vergeet na al het werk ook niet de permalinks aan te passen in WordPress. Zelf vind ik het mooi om logische links te gebruiken. Dit vereist ook een aanpassing op de .htaccess in de de site:

sudo nano /var/www/website/.htaccess

Met de toevoeging:

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Dan krijg je een mooie url zoals deze post heeft:
http://old.floris.vanenter.nl/2015/wordpress-verhuizen