Formation « Développer un thème WordPress sur mesure »

Comment rapatrier un site en ligne en local

Lecture : 5 minutes • 2

Parfois, il est utile de rapatrier un site en ligne vers son ordinateur, dans le but par exemple de travailler tranquillement sur une nouvelle version ou faire des améliorations. Le processus de migration reste en substance le même que pour la mise en ligne, mais dans l’autre sens !

Si vous voulez ajouter une nouvelle fonctionnalité à votre site, il est intéressant de repartir de la version à jour en ligne, d’où l’intérêt de voir comment le rapatrier en local. De cette manière le site continue de tourner, pendant que vous travaillez tranquillement sur son clone à l’abri des regards.

Si vous venez de voir le cours sur la mise en ligne d’un site WordPress, vous pouvez passer rapidement sur celui-ci, car la procédure est la presque la même, dans le sens inverse.

On va toutefois introduire une nouvelle extension pour synchroniser 2 sites facilement d’ici la fin de ce cours, qu’il est intéressant de connaitre.

Et comme pour la mise en ligne, on a 2 méthodes à notre disposition :

La méthode simple via une extension

Pour aller au plus simple, vous pouvez utiliser l’extension All-in-One WP Migration :

All-in-One WP Migration

All-in-One WP Migration

Déplacez, transférez, copiez, migrez et sauvegardez un site en un seul clic. Rapide, facile et fiable.

ServMask

Installez-la tout d’abord sur votre site en ligne. Dans le menu All-in-One WP Migration > Exporter choisissez Exporter vers Fichier.

Téléchargez ensuite le fichier d’export au format .wpress.

Maintenant, installez un nouveau site sur votre ordinateur grâce à Local.

Capture d'écran du logiciel Local pour installer des sites WordPress sur son ordinateur
Installez un nouveau site avec Local

Connectez-vous à votre interface d’administration, installez là aussi All-in-One WP Migration et allez cette fois dans le menu Importer.

Sélectionnez votre fichier .wpress et laissez faire l’import. Une fois terminé, toutes les données du site en ligne se retrouveront en local sur votre URL du type monsite.local !

Il faudra désormais vous connecter avec les mêmes identifiants que le site en ligne.

Et si vous voulez plus de défi, voici la version à la main.

La méthode manuelle classique

La migration classique est un peu plus longue, et du coup si vous avez besoin de migrer votre site souvent, ce ne sera pas forcément la bonne solution. Heureusement, je vous parle de Migrate DB Pro juste après.

Voici les 6 étapes de la migration manuelle. Vous allez voir qu’il y a tout de même quelques petites différences avec la méthode de mise en ligne d’un site.

Étape 1 : Rapatrier les fichiers via FTP

Tout d’abord, créez un site WordPress avec Local. Ouvrez le dossier contenant les fichiers du site.

La fenêtre de Local montrant les informations du site
Ouvrez le dossier contenant les fichiers du site

Allez dans app/public/ vous devriez voir les dossier wp-content, wp-include et wp-admin.

Connectez-vous en FTP à votre site et récupérez seulement le dossier wp-content en le faisant glisser vers votre dossier local : vous allez donc le remplacer.

En ligne, les fichiers de votre site se trouvent en général dans le dossier public_html ou www.

Conseil

Contrairement à la mise en ligne, on a pas besoin de récupérer tous les fichiers du site, seulement les éléments contenus dans wp-content.

En effet ce dossier contient les extensions, thèmes, traductions, images et autres médias du site.

Étape 2 : Exporter la base de données

Pendant le transfert FTP, profitez-en pour vous connecter à la base de données de votre site en ligne (en passant par le cPanel chez o2switch par exemple). C’est l’outil phpMyAdmin qui va nous permettre de consulter et exporter la base.

Capture d'écran de phpMyAdmin montrant l'interface d'export de base
Export de la base depuis phpMyAdmin
  • Cliquez sur le nom de votre base à gauche ;
  • Puis l’onglet Exporter ;
  • Sélectionnez la méthode d’exportation Personnalisée ;
  • Puis la compression gzippée ;
  • Validez : le fichier se télécharge.

Étape 3 : Importer la base de données en local

De retour sur Local, cliquez sur votre site, puis l’onglet Database, et enfin Open Adminer.

Capture d'écran de l'interface d'import de base d'Adminer
Importez ensuite votre base depuis Adminer

Cliquez sur Importer à gauche, sélectionnez le fichier et validez.

Étape 4 : Changer les URL

Maintenant il va falloir modifier les URL, toujours depuis Adminer.

L'interface d'affichage des données d'Adminer
Remplacez ensuite les 2 URL dans la table wp_options
  • Allez dans la table wp_options à gauche ;
  • Cliquez sur Afficher les données.
  • Modifiez ensuite les lignes 1 et 2 (home et siteurl) pour indiquer l’URL locale de votre site.

Étape 5 : Remplacer les URL

À partir de là votre site devrait être consultable en local ! Par contre WordPress a la fâcheuse tendance de stocker les URL absolues de vos images et contiennent donc l’URL de votre site en ligne.

Pour corriger ça, connectez-vous à votre interface d’administration de WordPress et ajoutez l’extension gratuite Better Search Replace.

Allez dans Outils > Better Search Replace et indiquez :

  • l’URL du site en ligne dans Rechercher ;
  • L’URL du site local dans Remplacer par ;
  • Sélectionnez ensuite toutes les tables ;
  • Lancez la procédure !

Étape 6 : Réenregistrer les permaliens

Et enfin, pour terminer, allez dans Réglages > Permaliens et cliquez simplement sur Enregistrer, sans rien modifier. Cela forcera WordPress à générer à nouveau la structure des permaliens et vous évitera de tomber sur des erreurs 404 lorsque vous cliquerez sur des liens.

Et voilà ! Votre site a bien été rapatrié en local et il devrait fonctionner correctement. Mais du coup c’était plutôt long, non ? Alors voici une solution plus simple, plus efficace, mais hélas payante.

Synchroniser facilement votre site local et en ligne

Une fois votre site en ligne, il va continuer à évoluer, et il faudra régulièrement le rapatrier en local afin de travailler sur une nouvelle fonctionnalité. Au lieu de s’embêter à faire une migration dans un sens comme dans l’autre, il existe une extension premium très appréciée des développeurs :

Migrate DB Pro est fait par Delicious Brains qui édite l’excellent SpinupWP, WP Offload Media et Better Search Replace (que l’on a vu précédemment).

D’ailleurs en installant Migrate DB Pro, vous n’aurez plus besoin de Better Search Replace puisque l’outil est directement intégré dans l’extension.

Elle est très simple à utiliser : il suffit tout d’abord de l’installer les 2 sites : celui en local et celui en ligne.

Ensuite, une interface permet très facilement de push (pousser en ligne) ou de pull (tirer/rapatrier en local). Et c’est grâce à une clé secrète et une API privée que l’échange de données est possible.

Capture d'écran de Migrate DB Pro par Delicious Brains
Pas la peine d’essayer ma clé, je l’ai changée entre temps 😉

Des réglages permettent de choisir quelles tables synchroniser, et des add-ons permettent également de synchroniser les extensions et les médias.

Conseil

En général, j’utilise Migrate DB Pro seulement pour rapatrier le contenu du site en ligne vers le local, et pas l’inverse, sinon je risque de perdre des actions qui se sont déroulées entre temps sur mon site en ligne (commandes, commentaires…)

Et pour ne pas me tromper, j’ai pu verrouiller l’import sur le site principal, il est donc impossible d’écraser ma version en ligne par mégarde !

Certes, la licence est un peu chère, mais cette extension me fait gagner énormément de temps lorsque je travaille sur mes sites.

Si vous souhaitez en savoir plus sur cette extension et comment l’utiliser, je vous montre tout cela dans le cours dédié à Migrate DB Pro (formation premium) .


Vous savez désormais envoyer votre site en ligne, le rapatrier en local mais aussi le synchroniser. Ce sera peut-être un peu compliqué les premières fois, mais en suivant à la lettre la procédure, vous verrez que ça deviendra très vite une formalité !

2

Questions, réponses et commentaires

  1. Estelle

    Le 24 juin 2020

    Bonjour, tutoriel très bien expliqué, mais voilà j’ai un souci à l’étape 3 : Importer la base de données en local. J’ai le message d’erreur suivant: Erreur dans la requête (1050): Table ‘wp_commentmeta’ already exists. Si je continue, mon site est vierge et si je la supprime mon site est inexistant. J’aimerais bien avoir votre avis. Et une dernière question quelle est l’URL local: http//localhost/monsite ou http//monsite.local . Merci

    1. Maxime BJ

      Le 24 juin 2020

      Avant la migration, tu es bien certaine que la base est entièrement vide ?

Laisser un commentaire