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

Comment rapatrier un site en ligne en local

Lecture : 5 minutes • 47

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.

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

47

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

    2. Maxime BJ

      Le 24 juin 2020

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

  2. 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.

  3. 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.

  4. 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 !

  5. 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.

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

  7. Emmanuel

    Le 30 juillet 2021

    Bonjour,
    Comment fais tu pour installer All-in-One WP Migration dans l’interface d’administration de Local ? J’ai essayé par les Add-Ons mais sans succès. Merci de ton aide. Emmanuel

    1. Maxime BJ

      Le 30 juillet 2021

      Il faut d’abord que tu installes un site WordPress neuf, pour ensuite installer All-in-One qui est une extension WordPress. Ton site local servira de réceptacle pour recevoir le site distant, qui le remplacera une fois la manipulation terminée.

  8. Fanny

    Le 3 août 2021

    Bonjour,
    Merci pour toutes les infos !
    J’ai installé Local, modifié le wp-content et importé ma base (mode manuel car trop lourd) que je vois sans problème sur Adminer. Par contre, je ne vois toujours pas mon site. J’ai le WP tout neuf avec le thème de base mais rien de mon site actuel. Que puis je vérifier ou faire ?
    Merci par avance 🙂

    1. Maxime BJ

      Le 3 août 2021

      Je pense que c’est la base qui est mal reliée au site. tu n’as pas du remplacer celle du site vide, puisque tu peux encore le voir. Il faut donc contrôler qu’il n’y a bien que les tables de ton vrai site. Tu peux aussi contrôler si la connexion est la bonne dans le wp-config.php. En cas de doute, essaie de réimporter la base en entier. Supprime d’abord toutes les tables local.

  9. GiBi

    Le 4 août 2021

    Bonjour,
    J’ai installé l’extension sur le site et aussi en local; L’export semble ok, le download du .wpress (257Mo) aussi, mais a l’import via LocalByFlyweel ca bloque a 68%
    ???

    1. Maxime BJ

      Le 4 août 2021

      Avant, l’extension proposait gratuitement un add-on qui permettait une autre technique d’import, qui fonctionnait mieux, mais désormais c’est payant hélas. As-tu essayé la migration manuelle ?

  10. GiBi

    Le 4 août 2021

    Bon, petyit update du msg précédent; Initialement j’ai tenté d’écraser le site initial développé avec Local par la version en ligne; Comme le process bloquait a 65%, j’ai supprimé le site et créé un site vierge que j’ai écrasé avec l’importation et là ca fonctionne; Seulement rien n’est a jour; Le forum est resté en l’état initial.
    ???

    1. Maxime BJ

      Le 4 août 2021

      Si la migration a bien fonctionné tu devrais avoir ton site à la place de celui installé pour le transfert, avec toutes tes données. Essaie la migration manuelle.

  11. Thierry FORLINI

    Le 17 octobre 2021

    Bonjour,
    Nous avons change notre site et enlever le nom de domaine rattacher.
    Par un ftp je vois toujours les données de l’ancien site (repertoire www).
    J’ai malheureusement besoin de consulter des données de cet ancien site.
    Comment puis je faire ?
    Merci

    1. Maxime BJ

      Le 18 octobre 2021

      Bonjour Thierry,
      Le mieux c’est de rapatrier le site en local en effet (fichiers + BDD) via la manipulation montrée dans ce cours.
      Grâce à cette méthode, pas besoin de nom de domaine puisque tu pourras en choisir un fictif en local.

      1. Thierry FORLINI

        Le 19 octobre 2021

        Bonjour,

        je ne comprends pas comment on rapatrie la base de données.
        Etant donné que je peux accéder aux données seulement en FTP.

        1. Maxime BJ

          Le 19 octobre 2021

          Pour cela tu dois avoir accès à ton hébergeur en toute logique, et donc à ton compte client, et à PHPMyAdmin. Si tu n’as accès qu’au FTP, tu es effectivement bloqué, mais ce n’est pas normal. Il n’y a pas de raison que tu n’aies pas accès à ta base de données.

  12. Parny

    Le 2 novembre 2021

    Bonjour merci pour cet article précis.
    J’ai fait comme expliqué dans la deuxième méthode, j’ai remplacé le fichier wp-content dans le dossier du site local, mais mes pages et le thème que j’avais sur le site en ligne, ne s’affichent pas ….

    1. Maxime BJ

      Le 2 novembre 2021

      Essaie de refaire la migration, et vérifie chaque étape. Ça devrait marcher si tout est bien fait à la lettre. Je sais que c’est chiant, mais sinon j’ai donné une alternative avec une extension si jamais tu n’y parviens pas.

  13. PhilippeC

    Le 16 novembre 2021

    Bonjour. Vous indiquez que pour modifier les URL du site local, il faut ajouter sur le site local une extension qui fait le job : mais pour ajouter cette extension, il faut d’abord avoir accès… au site local.
    En suivant votre tuto, je modifie la table « wp_options » et j’indique mon url locale, mais quand j’essaye d’accéder au site, je tombe sur le site distant, pas sur le site local. Peut-être y-a-t’il un autre paramètre à modifier ? (j’utilise Wampserver).

    1. Maxime BJ

      Le 16 novembre 2021

      Si tu as bien suivi la procédure, ça devrait pourtant fonctionner. Car en modifiant les 2 URL de la table option, tu fais correspondre le site à l’adresse local. Par contre, ce sont les liens et les images qui ne seront pas bons, et c’est là le rôle de l’extension de remplacement. Mais à ce moment-là, le site devrait être accessible. Regarde si tu as bien modifié les 2 valeurs, et qu’il n’y a rien qui fasse conflit (on peut par exemple définir l’URL du site en dur dans le wp-config.php par exemple).

  14. Eric

    Le 15 janvier 2022

    Bonjour Maxime,
    Merci pour le tuto. Pour ma part, j’ai un problème au niveau de l’étape 5 de la méthode manuelle.

    Mon site en ligne a bien été rapatrié en local en revanche je n’ai plus la possibilité de me connecter à mon interface d’administration de WordPress.

    Saurais-tu m’aider ?
    Merci.
    Eric

    1. Maxime BJ

      Le 16 janvier 2022

      Difficile de savoir quelle a été l’erreur, je ne pourrais hélas pas t’aider. Je t’invite à recommencer les manipulations, tu as peut-être oublié quelque chose. Vérifie que tu utilises bien le bon identifiant : celui du site rapatrié et non pas celui d’origine.

      1. Eric

        Le 17 janvier 2022

        Bonjour Maxime,

        Je précise que je souhaite rapatrier un vieux site pour effectuer une mise à jour et mettre en place un thème enfant (le thème d’origine ayant pas mal été customisé).

        La configuration actuelle est la suivante :

        Version WP : 5.0.15
        Version PHP : 5.5.38

        Aussi j’utilise le plugin Custom Login.

        1. Maxime BJ

          Le 19 janvier 2022

          Hélas, ça ne m’apporte pas plus d’information. Je ne peux que t’inviter à retenter la manipulation en entier et bien vérifier étape par étape.

  15. Cyrielle

    Le 2 février 2022

    Bonjour Maxime,

    Merci beaucoup pour ce tuto.

    À l’étape 3, ma base de données semble trop volumineuse pour être importée via adminer.
    Je suis passée par « open site shell », ce qui me permets de bien récupérer toutes les tables de mon site en ligne. (elles apparaissent toutes bien dans adminer)

    Par contre, j’ai aussi des tables vides qui se crée par défaut à la création de site par local. Si je supprime ces tables vides, lorsque je lance mon site, je retombe systématiquement sur l’url : monsite.local/wp-admin/install.php qui m’oblige à réinstaller wordpress… ce qui recrée ensuite les tables vides.

    Au final, sur mon site local j’ai bien mon thème et toutes mes extensions mais pas mon contenu.

    Saurais-tu m’orienter ?

    Merci par avance pour ton aide,
    Cyrielle

    1. Maxime BJ

      Le 3 février 2022

      Normalement, quand tu remplaces les fichiers du site, tu va importer le fichier wp-config.php du site en ligne. C’est lui qui empêche de lancer le processus d’installation. Vérifie donc que tu n’as pas oublié d’importer tous les fichiers depuis ton site.

  16. max

    Le 1 juin 2022

    Bonjour Je ne comprends pas cette étape je suis bloqué des l’étape 1

    Étape 1 : Rapatrier les fichiers via FTP

    « 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. »

    glisser vers votre dossier local comment faire je suis ur mac ??

    1. Maxime BJ

      Le 1 juin 2022

      Tu peux tout simplement le faire glisser de ton FTP vers ton bureau par exemple, dans un premier temps.

  17. celine

    Le 2 juin 2022

    Bonjour,
    bravo pour votre tuto. C’est très bien fait.

    J’ai suivi vos étapes pour rapatrier un site pour le modifier mais je me confronte à des problèmes dans WPadmin.

    Warning: Cannot modify header information – headers already sent by…

    Warning: Use of undefined constant SECURE_AUTH_KEY – assumed ‘SECURE_AUTH_KEY…

    Warning: session_start(): Cannot start session when headers already sent in C:…

    Merci de votre aide

    1. Maxime BJ

      Le 3 juin 2022

      Je te recommande de recommencer l’étape où tu transfères les fichiers de WordPress. Je pense que l’opération ne s’est pas correctement déroulée et qu’il manque des fichiers. Tu me diras s’il y a du mieux !

      1. Céline

        Le 12 juillet 2022

        Bonjour . C’était une extension de WP qui posait problème. Une fois désactivée, cela a fonctionné.

        Merci!

  18. Céline

    Le 12 juillet 2022

    Bonjour,
    J’ai du re-rapatrier mon site sur un nouvel ordinateur qui est sous Windows 10. Au moment d’importer la Base de données, impossible d’ouvrir Adminer. Quand je clique sur Open Adminer, le navigateur web à l’adresse http://localhost:10007/?username=root&db=local me répond:

    Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée.
    Système MySQL
    Serveur localhost
    Utilisateur root
    Mot de passe
    Base de données local

    Quel est le mot de passe?
    Merci encore

    1. Maxime BJ

      Le 12 juillet 2022

      Il n’y a pas de mot de passe en local, mais là ça veut dire que ton Local ne fonctionne pas correctement. Il se peut qu’un logiciel utilise le porte 10007 utilisé par la base de données et du coup ça ne fonctionne pas. Essaie de redémarrer l’ordinateur, de relancer Local et de rouvrir adminer. Une alternative serait d’essayer DevKinsta à la place.

      1. Céline

        Le 13 juillet 2022

        Effectivement en redémarrant l’ordi, ça a marché! Merci beaucoup

  19. Mélody

    Le 6 septembre 2022

    Bonjour, merci pour le tuto mais je suis coincé à l’étape 3. J’ai bien exporter et importer en local mais pas moyen d’afficher le site.local
    il me dit adresse introuvable alors qu’il est sur un serveur local
    Je sais plus trop quoi faire
    Merci d’avance

    1. Maxime BJ

      Le 6 septembre 2022

      Ce n’est qu’à partir de l’étape 4 que ça va commencer à fonctionner, car il faut d’abord changer les URL pour mettre l’adresse locale. Ton site vide local fonctionnait-il bien avant l’import de la base ?

Laisser un commentaire