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

Comment rapatrier un site en ligne en local

Lecture : 5 minutes • 15

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é !

15

Questions, réponses et commentaires

  1. lili

    Le 12 juillet 2021

    Bonjour,
    Local ne me copie pas la BDD dans l’onglet « local’ (adminer, case DB) mais me recrée une bdd avec le nom de mon site, donc ça ne fonctionne pas.
    J’ai essayé de transférer le bdd dans local et supprimer les éléments qui ne sont pas les bons pour éviter les doublons mais ça ne fonctionne toujours pas. C’est tellement magique que je viens de perdre 3h sans pouvoir les récupérer.

    1. Maxime BJ

      Le 14 juillet 2021

      Sinon tu peux utiliser All in one WP migration qui est un plugin qui pourra t’aider à faire la migration automatiquement.

  2. fred

    Le 2 juillet 2021

    bonjour.
    je suis debutant et penses avoir tout réussi a suivre. a la fin, je clique dans Local sur Opensite, cela m’ouvre mon navigateur et celui ci m’affiche le message: The theme directory « twentytwentyone » does not exist.
    un idee du problème? en tout cas merci pour les tutos !

    1. Maxime BJ

      Le 2 juillet 2021

      Je pense que le transfert des fichiers n’a pas complètement fonctionné, ton thème ne semble pas être trouvé.
      Réessaie de réimporter le dossier wp-content/themes, ou carrément le dossier wp-content. Vérifie qu’il y a bien le dossier twentytwentyone et que ce thème est installé sur ton site.

      1. fred

        Le 2 juillet 2021

        merci pour la réponse, le téléchargement est conforme par rapport a ce que je vois sur le ftp. mon soucis est que mon site est en ligne (fait par quelaun d’autre avec qui je n’arrive plus a joindre) et que j’aimerai le modifier. l’idee était de le rapatrier pour le modifier. je sais qu’il a été fait sous wordpress

        1. Maxime BJ

          Le 5 juillet 2021

          Normalement si tu as bien suivi toutes les étapes ça devrait fonctionner. Il y a peut-être quelque chose qui manque, essaie de refaire la manipulation au complet si jamais.

  3. Moi

    Le 17 mai 2021

    Bonjour j’essaie d’importer mon site avec Local ainsi que All-in-One WP Migration mais mon document .wpress fait 3GB et je n’arrive pas l’importer avez-vous une solution ? Merci

    1. Maxime BJ

      Le 17 mai 2021

      Ton fichier est trop lourd. Du coup pas le choix, il faut opter pour la migration manuelle !

  4. roxanne lingua

    Le 6 mai 2021

    Bonjour, votre tuto est très intuitif, cependant une fois le site importé en local, ils me demandent les identifiants de mon compte, je suis alors vos consigne et rentre celles du site déjà en ligne. cependant ils me disent que le login est inconnu. Roxanne

    1. Maxime BJ

      Le 6 mai 2021

      Si la migration a bien fonctionné, ça devrait être en effet les mêmes. Pour en avoir le coeur net, depuis Local, ouvre Adminer dans l’onglet Database. Une fois dans Adminer, trouve la table wp_users et clique dessus, puis sur Afficher les données. Tu devrais voir ton nom d’utilisateur ainsi que l’e-mail de l’utilisateur. Le mot de passe, lui, est chiffré par contre.

  5. Bruynooghe

    Le 22 février 2021

    Très bon tuto, Maxime. Mais, étant sous Divi/Extra, l’import des pages, catégories et du customizer ne fonctionne pas. J’essaie de trouver l’astuce et vous tiendrai informé. Pierre

    1. Maxime BJ

      Le 23 février 2021

      La méthode exporte entièrement la base de données, donc tu devrais trouver ton site en ligne à l’identique et ce peu importe le constructeur / thème ou les extensions installées.

  6. 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 ?

    2. Bapman

      Le 11 mars 2021

      J’ai eu le même souci. J’ai d’abord supprimé toutes les tables vides nouvellement créées par Local (une par une, j’ai pas trouvé mieux avec Adminer).
      Puis j’ai fait l’import qui a marché.

Laisser un commentaire