Copier un site WordPress sur un serveur local avec Duplicator | Forum WordPress


Merci de vous inscrire pour participer au forum
Invité

Rechercher

— Forum Scope —




— Correspondances —





— Options du forum —





La longueur minimum du terme à rechercher est 3caractère - la longueur maximum est de 84 caractères

S'inscrire Mot de passe oublié ?
forum-plugin
Copier un site WordPress sur un serveur local avec Duplicator
Lire l'article original du blog
Ajouter une réponse
Avatar
Thibaud
Administrateur
Messages du forum : 125
Membre depuis :
17 novembre 2018
Hors ligne
1
21 décembre 2018 - 21:47

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 :

Configuration de duplicator pour export local

Archive trop lourde, exclusion des images

Bouton next

Création d

Telecharger archive de la copie de wordpress

Test de connexion à la base de données locale

Modification des données sérialisées, des URL et du répertoire où est installé WordPress


 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:

  1. Visualiser le rapport d’installation
  2. Sauvegarder les permaliens pour régénérer le fichier .htaccess
  3. Se promener sur le site pour vérifier que tout fonctionne
  4. Supprimer les fichiers d’installation (installer.php + l’archive)

Procéder aux 4 étapes finales

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.

mike
Invité
Invités
2
21 décembre 2018 - 22:15

Très bon plugin

Avatar
Robin
Membre
Membres
Messages du forum : 44
Membre depuis :
8 décembre 2018
Hors ligne
3
21 décembre 2018 - 22:19

Oui et ça marche dans les 2 sens évidement 🙂

Johanna
Invité
Invités
4
21 décembre 2018 - 22:27

Bonjour, est-ce que quelqu'un sait si on peut faire tourner un serveur local sur un ipad ?

Histoire d'avoir WordPress sans connection internet et sans ordinateur lol

Avatar
Robin
Membre
Membres
Messages du forum : 44
Membre depuis :
8 décembre 2018
Hors ligne
5
31 décembre 2018 - 16:01

Johanna a déclaré
Bonjour, est-ce que quelqu'un sait si on peut faire tourner un serveur local sur un ipad ?

Histoire d'avoir WordPress sans connection internet et sans ordinateur lol  

Je ne crois pas encore, mais j'ai trouvé ça comme app : ServersMan HD

Fuseau horaire du forum :Europe/Paris

Nb max. d'utilisateurs en ligne :574

Actuellement en ligne :
5 Invité(s)

Actuellement sur cette page :
1 Invité(s)

Auteurs les plus actifs :

Bruno: 52

Robin: 43

vKr_Onii: 41

bosschris: 39

Dan: 27

Nouveaux membres :

cilaos

Jonas

IsabelleR03

Xavier-VeryNet

lepounch

Statistiques du forum :

Groupes :1

Forums :7

Topics :552

Posts :2342

 

Statistiques des membres :

Invités: 26

Membres : 9899

Modérateurs : 26

Admins: 2

Administrateurs :wpengine, Thibaud

Modérateurs :Gebhard, david, Catherine1, zapps, soborne, mojiezuo, Soufian, Jeff, redwhirl, sigridregnier, Jessica, Benjamin2, spleen13, Alain2, kaepaul, negativenetwork, Gaetan1, Samson, Benoit1, Ailpp84, Joel2, Catherine2, Fatalys, Therese, Guillaume3, Gayraud

En ligne

9 visiteurs, 4 membres et Thibaud

Messages récents