WordPress migreren van Synology naar provider

In dit artikel komt aan de orde hoe een bestaande WordPress website van een Synology (PHP 7.4) gemigreerd kan worden naar een hosting-dienst van een provider (PHP 8.0).

De WordPress website van de Synology is als volgt geconfigureerd: vanuit de provider is een DNS (A-record) gemaakt naar het ip-adres van de Synology. De Synology vangt de aanvraag op en handelt dit verder af via een virtual host (Web Station). Deze configuratie wordt in dit artikel nader beschreven.

Voorts komt aan de orde hoe een child-theme aangemaakt kan worden en hoe een WordPress website in de maintenance mode gezet kan worden. Een child-theme is handig om ongestoord wijzigingen aan te brengen in een template. De maintenance mode is handig om de website tijdelijk off-line te zetten.

Sever Omschrijving
Synology 1. PHP upgraden naar 8.0
2. Child theme (optioneel)
3. Maintenance mode (optioneel)
4. Database exporteren
Provider 5. Database importeren
6. Content kopieren en configureren
7. Schaduw website Synology (optioneel)
1

Uiteraard is de eerste stap op de package van PHP 8.0 te installeren en deze als scripttaal toe te voegen aan de Web Station. Vergeet niet om de noodzakelijke extensies mysqli en curl aan te vinken.

Het vervolg is om de nieuwe scripttaal (backend) te koppelen aan de virtual host (Webserviceportaal).

Werkt de WordPress website niet meer? Zet dan de PHP versie terug zodat de WordPress weer werkt. Dan is het zaak om - tijdelijk - in WordPress een standaard template te selecteren en alle plugins uit te schakelen.

Het uitschakelen van alle plugins kan eventueel als volgt: hernoem de map plugins (wp-content) naar plugins-tmp. Vernieuw WordPress, merk op dat de plugins ontbreken, hernoem de map weer naar plugins en merk op dat alle plugins zijn uitgeschakeld.

Als dit gelukt is kan onderzocht worden (try on error) waardoor de fout werd veroorzaakt. Werkt WordPress nu wel met een andere template? Dan zat de fout in de template! Activeer plugin voor plugin om te kijken of hier de boosdoener zit.

2

Uiteraard is een child theme geen voorwaarde voor de migratie, maar is het wellicht een mooi moment om dit mee te nemen. Door een child theme toe te passen kunnen afwijkende opmaken makkelijk toegepast worden, bij updates blijven deze namelijk in tact.

Het maken van een child theme werkt als volgt. Ga opzoek naar de map van de huidige thema (wp-content/themes) en maak een nieuwe map met dezelfde naam gevolgd door -child. Als de map catch-box-pro heet, maak dan een nieuwe map catch-box-pro-child.

Als het gaat om een nieuwe versie van een actueel thema, hernoem dan eerst (voor de zekerheid) de bestaande map naar catch-box-pro-old en installeer het nieuwe thema.

Plaats in de map catch-box-pro-child twee bestanden, te weten:

style.css

/*
 Theme Name:   	Catch Box Pro
 Theme URL:    	https://pascalterheege.nl
 Description:  	Catch Box Pro Child Theme
 Author:       	PtH
 Author URL:   	https://pascalterheege.nl
 Template:  	catch-box-pro
 Version:      	1.0.0
 Tags:         	plaats, hier, jouw, tags, gescheiden, door, kommas
 Text Domain:  	catch-box-pro-child
*/ 
/* =Eigen CSS hier beneden plaatsen
-------------------------------------------------------------- */

functions.php

<?php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );

function enqueue_parent_styles() {
   wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}
?>

Beiden bestanden kunnen aangevuld worden met eigen wensen.

Log nu opnieuw in bij WordPress en selecteer het child theme. Deze is herkenbaar door een geruite achtergrond.

3

WordPress in maintenance mode zetten is uiteraard ook geen voorwaarde voor het migreren, maar het kan wel van pas komen.

Plaats de onderstaande code tijdelijk onderaan het bestand functions.php.

function wp_maintenance_mode() {
if (!current_user_can('edit_themes') || !is_user_logged_in()) {
    wp_die('Kom later terug');
    }
}
add_action('get_header', 'wp_maintenance_mode');

Verwijder of becommentarieer ([CTRL]/[CMD] + [K]) de code wanneer WordPress weer live moet.

4

Open phpMyAdmin (Synology) en exporteer de database. Wanneer de domein-naam veranderd open dan het SQL bestand en wijzig dit via zoek (domein-oud.nl) en vervang (domein-nieuw.nl).

5

Open phpMyAdmin (Provider), maak een nieuwe gebruiker aan (localhost) en een database met dezelfde naam. Onthoud de credentials! Selecteer de aangemaakte database en importeer het eerder geëxporteerde bestand.

6

Kopieer nu alle content naar de map van de nieuwe provider. Open het bestand wp-config.php, verwerk de eerder onthouden credentials en wijzig de DB-HOST van de Synology (localhost:/run/mysqld/mysqld10.sock of het bijbehorende ip-adres) naar die van de provider (mysql1321int.cp.hostnet.nl).

Open WordPress en sla de permalinks voor de zekerheid op.

7

Het is altijd handig om een extra (backup) kopie te hebben van WordPress. Om dit exemplaar te behouden kan de DNS van de provider gewijzigd worden naar een sub-domein (A-record). Vergeet dan ook niet de virtual host mee te wijzigen, alsmede de certificaten.

Let op: voor het aanvragen van de Let's encrypt certificaten dient de firewall tijdelijk uitgeschakeld te worden en poort 80 te zijn geforward in de router (public 80-80 en private 80-80).