Copier un site WordPress sur un serveur local avec Duplicator | Forum WordPress
Merci de vous inscrire pour participer au forum
Invité

16 janvier 2023
Disposer d’une copie conforme d’un site WordPress en ligne sur un serveur local, est-ce vraiment utile ?
Effectuer une copie en local d’une installation wordpress
déjà en ligne est très sécurisant, notamment pour tester de nouvelles fonctionnalités et éviter de laisser le site en maintenance trop longtemps en anticipant les éventuels problèmes, auxquels on fait tous face un jour ou l’autre.
Par contre, pour un site à fort trafic, qui génère des revenus conséquents, ou si des utilisateurs dépendent de l’accessibilité du site mère (réseaux de sites) ou encore si des utilisateurs payent pour avoir accès à une formation en ligne, on ne peut pas se permettre de laisser le site hors ligne trop longtemps. Si vous êtes dans un cas similaire, ou si vous développez, testez, ou modifiez les fichiers core, installer wordpress sur un serveur local vous permet de travailler sereinement en plus de vous permettre de travailler hors connexion.
Si avez besoin d’effectuer des tests de configuration serveur, rappelons que c’est aussi une simulation de tout l’environnement de développement Web qui héberge votre site.
Copier-Coller mon WordPress et ma base de données sur mon serveur local , pourquoi ça ne marche pas ?
La sérialisation des données (data serialization)
Ce qui se passe, c’est que WordPress, ses thèmes, et ses plugins stockent des données en utilisant une méthode appelée la sérialisation.
La sérialisation des données est la source de notre problème : si vous changez la longueur ou le nombre de caractère d’une chaîne de donnée sérialisée, vous devez aussi déclarer le nouveau nombre de caractères déclaré dans la chaîne générée.
Exemple d’une URL sérialisé :
Nous avons :
$array = array( ‘url’ => ‘https://wp-infinity.com’ );
Qui devient, une fois sérialisé :
a:1:{s:3: »url »;s:22: »https://wp-infinity.com »;}
Où s:22 est le nombre de caractères qui compose l’URL. Il y a donc bien un problème en passant de https://wp-infinity.com (s:22) vers http://localhost/monsite/ (s:22). http://localhost/monsite/ contenant 25 caractères on devrait avoir http://localhost/monsite/ (s:25). Il nous faut donc une solution qui tienne compte des données sérialisées.
Search and Replace
Une approche simple serait de faire une sauvegarde de base de données, de lancer un script de type Search and Replace de façon à modifier tout ce qui fait référence au nom de domaine, puis d’importer la base de données modifiée dans le nouvel emplacement. Le script d’interconnectit.com tente de tenir compte des données sérialisées, mais cela ne fonctionne pas pour les widgets.
Dans mon cas, avec mes 3 colonnes, des sidebars différentes attribués à chaque catégorie et des widgets différents par langue, ça ne me fait pas loin d’une centaine de widgets lourdement configurés, incluant du PHP et des classes CSS.
Hors de question bien entendu de tout refaire à la main. Le search and replace peut fonctionner, mais vous perdez vos widgets et parfois la configuration d’un certain nombre de plugins. Bon à savoir : certains plugins disposent également de la fonction Export/Import des paramètres.
Solution : le plugin WordPress Duplicator
On a vu plus tôt qu’un trop grand nombre de plugins wordpress
installé ralentit votre site. Avec WordPress Duplicator pas de problème, une fois le travail achevé vous pourrez le désinstaller.
Contrairement à la fonction Export de WordPress le plugin WordPres Duplicator va vous permettre de télécharger une copie de votre site préconfiguré en fonction de la destination de cette copie.
Il suffit d’indiquer les identifiants de la base de données de destination, ainsi que le nouveau répertoire où sera installé WordPress.
Ca peut être une adresse locale comme : http://localhost/monsite/, ou pour déplacer WordPress vers un autre répertoire : /home/votre_login_ftp/www/nouveau_dossier_de_destination/.
Exemple de création d’un package pour un import ultérieur sur un serveur local :







J’ai dû exclure mon fichier Upload (ici uploads2) pour réduire la taille de l’archive, sinon ça plantait en plein milieu. Si vous êtes dans mon cas, il suffit de copier-coller par la suite votre dossier upload par FTP, les images peuvent être déplacées tel-quel à la main tant qu’elles gardent le même nom de fichier. Ce sera plus rapide de toute façon, et indispensable si vous avez beaucoup d’images. Il ne vous reste plus qu’à cliquer sur afin de lancer un scan qui vous avertira d’un certain nombre d’avertissements susceptibles de faire échouer l’opération.
Comme je le disais plus haut, exclure mon dossier upload pour réduire la taille de l’archive a suffi, il restait pourtant un certain nombre d’avertissements :
Télécharger le script d’installation nommé « installer.php », puis votre archive.
Le script est indispensable pour déployer cette archive. Téléchargez les deux et placez-les dans le dossier de destination, là où vous voulez déployer cette copie de votre site WordPress (avec XAMPP, ce sera au sein d’un dossier placé dans le répertoire /htdocs).
Enfin, ouvrez votre navigateur et lancez localhost/monsite/intaller.php par exemple, pour une copie sur un serveur local. Les informations de connexion sont préremplies si vous les avez renseignés avant de créer l’archive.
Je précise qu’il faut avoir créé la base de données au préalable, comme expliqué sur cette page pour installer WordPress en local avec XAMPP.
Tester la connexion à la base de données locale avant de cliquer sur Run deployment : La copie du site est déployée, il ne reste qu’à effectuer la mise à jour du répertoire, des URLs et des données sérialisées. De nouveau si vous avez renseigné ces informations avant de créer l’archive, elles sont préremplies.
Vous avez aussi la possibilité d’activer tout de suite les plugins installés sachant qu’ils sont désactivés par défaut, et d’effectuer un scan des tables de la base de données.
Copier maintenant le dossier uploads vers la nouvelle destination de façon à récupérer les images si comme moi, vous avez dû alléger l’archive. Enfin, procéder aux 4 étapes finales en cliquant sur chacun des liens présents, à savoir:
- Visualiser le rapport d’installation
- Sauvegarder les permaliens pour régénérer le fichier .htaccess
- Se promener sur le site pour vérifier que tout fonctionne
- Supprimer les fichiers d’installation (installer.php + l’archive)

Conclusion
A chacun sa méthode, parfois un search and replace suffira, parfois non. J’ai trouvé cette solution en cherchant comment conserver même mes widgets après le transfert.
Une chose est sûre, je ne passerai plus que par le plugin Duplicator pour tout type de migration de WordPress. Voilà du travail bien fait. Et un plugin polyvalent.
Nb max. d'utilisateurs en ligne :615
Actuellement en ligne :
6 Invité(s)
Actuellement sur cette page :
1 Invité(s)
Auteurs les plus actifs :
Bruno: 52
david: 47
Robin: 44
vKr_Onii: 41
Gayraud: 29
Nouveaux membres :
SonChomley
dominicn06
ThomasWeara
RebbaLancaster
King079293
Statistiques du forum :
Groupes :1
Forums :7
Topics :760
Posts :2717
Statistiques des membres :
Invités: 75
Membres : 12172
Modérateurs : 16
Admins: 2
Administrateurs :Litzelmann, TL
Modérateurs :Gebhard, Catherine1, zapps, soborne, mojiezuo, Jeff, redwhirl, Jessica, spleen13, Alain Web-creator, kaepaul, Samson, Ailpp84, Catherine2, Fatalys, Therese
Se connecter
Derniers messages
- Maximizing Profits and Trading Experience with AI Stock Trading Apps Par RebbaLancaster
2 jours auparavant - Build your own Next Gen NFT gaming platform at lower cost Par Josh little
3 jours auparavant - How to Create an On-demand App for Business Owners Par jamieelucass
3 jours auparavant - Tofacitinib 5 mg for Rheumatoid Arthritis: Your Comprehensive Guide Par emergencydrugcompany
1 semaine auparavant - Binance Clone Script - Game-changer for Crypto startups Par jamieelucass
2 semaines auparavant