Dupliquer un site WordPress de production vers une plateforme de développement local WampServer permet de tester les modifications plus rapidement et plus sûrement que sur le serveur distant.
Les modifications validées localement peuvent être reportées sur le site de production en évitant de le rendre indisponible suite à une erreur de programmation.
WordPress se compose de fichiers et d’une Base de Données. Dupliquer les deux permet d’obtenir la copie la plus proche possible de l’original. Sauf qu’il faut entre autres intervenir dans la Base de Données pour remplacer les références vers l’ancien site par des références vers le nouveau site. Rien de bien compliqué, mais cela doit être réalisé avec soin.
Recopier les fichiers du site distant
Nous installons WordPress dans un sous-répertoire « demo » de WampServer.
Avec un client FTP comme FileZilla, nous recopions l’ensemble des fichiers du site distant. De cette façon, nous obtenons une duplication exacte de tous les fichiers, y compris les fichiers de thèmes, d’extensions (plugins) et de médias contenus dans le répertoire « wp-content » :

Créer un « hôte virtuel »
Créer un hôte virtuel permettra d’accéder au site local à l’adresse « http://demo ».
L’article ci-dessous explique la méthode pour créer un « hôte virtuel » dans WampServer :
Toujours créer un hôte virtuel (Virtual Host) avec WampServer
Nous créons l’hôte virtuel « demo » :

Exporter la Base de Données du site de production
Ce point a déjà été traité dans l’article WordPress et MySQL. Votre hébergeur doit vous fournir les éléments nécessaires pour gérer la Base de Données.
L’ensemble des tables du site doivent être exportées : les tables standard WordPress et les éventuelles tables créées par des extensions. En pratique, il faut sélectionner toutes les tables dont le préfixe est le même que celui des tables standard WordPress du site (« wp_ » si vous n’avez pas modifié le préfixe des tables) :
- sélectionner la Base de Données,
- cliquer sur l’onglet
,
- s’il y a d’autres tables que celles du site à dupliquer, choisir l’option de personnalisation,
- sélectionner les tables du site à dupliquer (y compris celles des extensions),
- tout en bas de page, cliquer sur le bouton

Créer la nouvelle Base de Données
La création d’une nouvelle base dans WampServer se fait très simplement depuis phpMyAdmin :
- Cliquer sur l’icône WampServer :
,
- dans le menu qui apparaît, cliquer sur « phpMyAdmin :
WampServer – accéder à phpMyAdmin - se connecter (si ce n’est pas déjà fait) :
Connexion à MySql - créer une nouvelle base


Il est aussi tout à fait possible d’ajouter les tables à une base existante. Il suffit que les préfixes de table ne soient pas déjà utilisés. C’est ce que nous allons faire dans notre exemple.
Haut de page
Importer les tables
Nous allons intégrer les tables importées dans la base « demo » existante :
- sélectionner la Base de Données « demo »,
- cliquer sur le bouton
(éventuellement après avoir cliqué sur le bouton
pour le faire apparaître) :

Sélectionner le fichier d’export SQL réalisé depuis le site de production :

Nota : pour ne pas révéler le préfixe utilisé pour mes tables de production, j’ai préféré modifier le préfixe des tables.

Modifier le contenu des tables
Il faut désormais remplacer, dans la Base des Données, les liens pointant vers le site de production par des liens pointant vers le site local. Par exemple, les adresses des images insérées dans les articles doivent désormais pointer vers les fichiers copiés en local. Pour cela, nous allons exécuter un script SQL.
Utiliser un script paramétré
Le script ci-dessous permet de remplacer l’adresse web (url) de l’ancien site par l’adresse web du nouveau site dans les tables standard de WordPress :
Récupérer le script en téléchargeant le fichier
- Cliquer sur le nom du fichier situé en bas du script
Télécharger le script - ouvrir le fichier (la procédure exacte dépend de votre navigateur) dans un éditeur de texte comme Notepad++ (attention : pas un traitement de texte comme « Word » ou « Office ») :
- dans l’éditeur, sélectionner l’ensemble du texte du script (touches « CTRL + A » ou « Sélectionner tout » du menu contextuel) copier la totalité du script dans le presse-papier ( « CTRL + C » ou « Copier » dans le menu contextuel) :
Sélectionner tout le script (CTRL+A) et copier (CTRL+C)
Exécuter le script dans phpMyAdmin
Se connecter à phpMyAdmin :
- sélectionner la base de données du site WordPress,
- cliquer sur l’index
- coller le script ( « CTRL + V »),
- définir les paramètres :
@ancien : l’adresse web du site à dupliquer (exemple : https://cabesthotes.fr),
@nouveau : adresse web (hôte virtuel) de la copie du site dans WampServer (exemple : http://demo)
@prefixetable : le préfixe des tables locales (exemple : wpdemo), - cliquer sur le bouton

Modifier le contenu d’un script modèle
Une autre solution pour mettre à jour les adresses web dans la Base de Données consiste à éditer un script modèle et modifier son contenu dans un éditeur de texte.
À partir du script ci-dessous :
- sélectionner tout le texte du script avec la souris,
Sélectionner tout le texte du script - Copier le texte dans le presse papiers ( « CTRL+C »),
- le coller dans un éditeur de texte comme Notepad++ (attention : pas un traitement de texte comme « Word » ou « Office »),
- utiliser la fonction de remplacement pour modifier les chaînes de caractères correspondant à :
– l’adresse du site de production,
– l’adresse du site local,
– au préfixe de table :
par exemple :
– « www.oldhost.com » => « https://cabesthotes.fr »
– « www.newhost.com » => « http://demo »
– « wp_ » => « wpdemo_ »Remplacer les trois valeurs - sélectionner tout le script (« CTRL+A) et copier dans le presse-papiers (« CTRL+C ») :
- coller le texte du script dans phpMyAdmin
– sélectionner la Base de Données
– cliquer sur l’onglet,
– coller le texte du script (« CTRL+V »)
– cliquer sur le bouton:
Coller et exécuter le script
Vérifier qu’il n’y a plus d’ancienne référence dans la BdD
Dans phpMyAdmin, rechercher l’adresse du site de production dans toutes les tables du site, y compris dans les tables créées par des extensions :
Dans phpMyAdmin :
- sélectionner la Base de Données ,
- cliquer sur l’index
,
- saisir l’adresse web à rechercher
dans notre exemple, nous saisissons uniquement le nom de domaine ce qui nous permet de retrouver les adresses mail ainsi que des adresses « http » (et non https); cela n’est pas forcément nécessaire, mais peut permettre de décider de les modifier si c’est utile, - sélectionner toutes les tables ayant le même préfixe que les tables standard WordPress,
- cliquer sur le bouton

On obtient un résultat par table, avec la possibilité d’afficher le résultat des tables qui contiennent au moins une correspondance :

Nous pouvons modifier, ou ne pas modifier, chaque champ qui contient une référence au site de production :

Dans l’exemple ci-dessus, aucune donnée n’est à modifier.
Modifier wp-config.php
Le fichier « wp-config.php » du site local, est une copie du fichier « wp-config.php » du site distant. Autrement dit, il contient les informations de connexion à la Base de Données du site de production qu’il faut remplacer par les données du site sur WampServer :
Il faut aussi vérifier d’autres paramètres, comme le forçage éventuel de l’administration en SSL, qui peut ne pas fonctionner pour le site local :
Modifier .htaccess
Vérifier qu’il n’y a pas de référence à l’adresse du site de production dans le fichier « .htaccess » local.
Modifier les permaliens
Si WordPress ne trouve pas les articles, il faut régénérer les permaliens.
Pour se faire il faut :
- se connecter avec un compte administrateur,
- cliquer sur le sous-menu « Permaliens » du menu « Réglages »,
Atteindre le réglage des permaliens - choisir un réglage de permaliens,
- cliquer sur Enregistrer les modifications (il n’est pas nécessaire de modifier le réglage, demander uniquement l’enregistrement est suffisant pour que WordPress régénère les permaliens) :
Sélectionner un permalien et enregistrer
Dans le cas d’un serveur Apache, le fichier « .htaccess » doit contenir les instructions suivantes :
