transfert-site-local-distant

Parce qu’il m’est arrivé de me planter plus d’une fois sur des transferts de sites de distant à local avec WordPress, je tenais à partager ma méthode à d’autres, qui, comme moi se sont assez régulièrement pris la tête sur cette manipulation.

Vous rencontrerez très souvent ce cas lors de la refonte d’un site. On peut aussi avoir besoin de sauvegarder son site sur son serveur local. Voici donc une méthode sans risque pour transférer un site existant sur le web sous WordPress vers son serveur local.

1. Export de la base de données

Avant toute chose, il faut commencer par exporter la base de données de votre site existant en ligne. Rendez-vous sur l’interface client de votre hébergeur (OVH, 1&1, GoDaddy,…) et trouvez l’accès au phpMyAdmin. Chez 1&1, vous y avez accès directement, mais chez OVH, il vous faudra configurer  un mot de passe pour y accéder.

Manager-OVH

Chez OVH

Espace-Client-1-1

Chez 1&1

 

Une fois connecté à votre base de données, il faut l’exporter mais pas entièrement. N’oubliez pas qu’en local, l’URL de votre site va changer ainsi que les identifiants de connexion, donc pour anticiper ce problème, on choisit d’exporter toutes les tables de la base sauf wp_options et wp_users.

Export-bdd-phpMyAdmin

Exemple chez OVH

 

Choisissez une exportation personnalisée et trouvez les meilleurs paramètres selon le cas. Pour ma part, je sélectionne seulement le mode transactionnel et je laisse NONE comme paramètre pour la compatibilité de l’exportation.  Je demande la compression « gzippé », et c’est tout.

2. Changer les URL

Une fois votre base de données téléchargée, vous allez devoir mettre les mains dedans, mais ça reste hyper simple. Lors de cette étape, on va aussi anticiper les soucis d’URL que l’on pourrait retrouver en local. Ouvrez votre fichier avec le bloc-notes et remplacez toutes les URL http://www.monsite.fr/ par http://localhost/monsite/.

3. Création de votre base de données en local

Il est temps, maintenant de créer votre nouvelle base de données en local. Rendez-vous sur votre phpMyAdmin de votre serveur  local (Wamp, Xampp, Lamp,…) et créez simplement une base du même nom que celle du site distant. Laissez cette page ouverte pour la suite.

creation-base-de-donnees

 

4. Installation de WordPress en local

Je ne détaille pas cette étape car elle fait l’objet de nombreux tutoriels sur le web. Si vous n’avez jamais installé de plateforme WordPress en local, vous trouverez facilement un tuto qui vous convient. http://www.google.fr/search?q=installer+wordpress+en+local

Pour ceux qui connaissent déjà, rien ne change, faites comme d’habitude.

5. Suppression des tables de la base locale

A ce moment, il faut retourner sur le phpMyAdmin local. Votre base de données s’est étoffée et compte maintenant 11 tables. Pour éviter tout souci, on va supprimer toutes les tables sauf wp_options et wp_users, mais vous commencez à connaitre la musique.

6. Importation de la base de données en local

C’est évidemment l’inverse de la première étape, il faut maintenant importer votre base de données sauvegardée quelques minutes plus tôt.

Choisissez le fichier SQL qui correspond, en jeu de caractères utf-8 et en mode de compatibilité NONE et faites exécuter.

Importation-base-de-données

 

Pour vérifier, si tout s’est bien déroulé, rafraîchissez l’écran de votre interface WordPress, et…magie ! Tous vos articles, commentaires, menus, etc. sont apparus.

7. Télécharger/Ecraser le répertoire wp-content

C’est l’étape la plus sympa de tout le tutoriel car c’est l’heure d’aller vous faire un kawa !

Tout ce que vous avez à faire c’est de copier le dossier wp-content se trouvant sur votre site distant vers le dossier wp-content de votre site local. Comme cela peut prendre un peu de temps, il vaut mieux prévoir une autre tâche à côté.

transfert-wp-content

8. Changement de thème

Revenez quelques minutes plus tard et tout est prêt ! Il ne vous reste plus qu’une dernière étape : le changement de thème. Et oui ! A ce moment du tutoriel, vous avez encore le thème par défaut de WordPress. Si vous en utilisiez un autre, il suffit de vous rendre dans le menu Apparence > Thèmes et d’activer le thème adéquat.

changement-theme-wordpress

N’oubliez pas non les options de thèmes à modifier, de plus en plus nombreux sur les nouveaux thèmes, ainsi que les derniers réglages comme les menus, la page d’accueil (statique/derniers articles),…

9. Paramétrage de votre serveur local pour autoriser les permaliens (subsidiaire)

Il reste éventuellement un paramétrage à effectuer si ce n’était pas déjà fait. Si vous souhaitez changer la structure des permaliens et il faut vous assurer que votre serveur autorise les changements de directions. Rendez-vous sur votre serveur local au menu Apache > Modules Apache et cochez rewrite_module.

Si vous avez l’habitude d’utiliser une autre méthode, n’hésitez à la partager en commentaires.

Edit: Une autre méthode existe pour change le nom de domaine à base de commandes SQL. Merci à Agnès pour le lien… http://www.geraudlacheny.fr/changer-le-nom-de-domaine-dun-site-wordpress-sans-stress/

55 comments

  1. Si on a une grosse base de donnée l’ouverture d’un fichier de 50mo sur notepad peut être problématique.

    Je préfère uploader la bdd et modifier dans phpmyadmin les deux champs site_url et home dans wp-option.

  2. Hello,
    Ca fait un bon moment que je veux transférer un de mes bogs WP en local, mais je n’ai jamais osé de peur d’avoir des problèmes comme d’autres personnes que je connais, je pense qu’avec ces indications je vais me lancer en espérant que tout se passe bien. Merci pour toutes ces infos.

  3. Pour la modification des URls, il y a une façon beaucoup plus simple que le changement via PHPMyAdmin.

    En effet, une fois que les fichiers du site sont uploader sur le serveur de prob, il suffit d’insérer le code suivant dans le fichier wp-config.php pour que toutes les URLs soient modifier avec la nouvelle :
    define(‘RELOCATE’, ‘true’);

  4. C’est pas mal, en effet! On gagne encore un peu de temps…

  5. Un de mes amis m’a dit qu’il voulais faire ça, mais ne savait pas du tout comment et j’avoue que moi non plus, donc je vais être son sauveur en lui envoyant le lien de ce tuto :-)

  6. Xav@Ipad pas cher

    Merci pour le tuto, je voulais faire ça sur un de mes sites, en plus je suis OVH, donc tuto parfait ! Je teste et vous fais un retour si cela fonctionne A+ Xav ;)

  7. merci infiniment pour l’astuce 5, je cherchée cette tactique depuis 2 semaines déjà

  8. Léa

    moi qui pensais qu’une fois lancé on ne pouvait plus changer de thème, erci pour votre astuce

  9. Super tutoriel. Exactement ce que je cherchais. Je pensais que la partie de changement d’URL aurait pris énormément de temps vu le nombre de pages mais c’est beaucoup plus rapide de le faire via le bloc notes. Merci pour le partage.

  10. Bonjour,
    Vraiment bien fait ce tuto et surtout très pratique.
    C’est pas forcément facile de réaliser un transfert en local depuis WordPress.

  11. La première étape sur l’export de la base de données est la seule que j’aurais pu faire tout seul ;)
    J’en demande peut-être beaucoup mais connaissez vous le cms power boutique et savez vous faire la même chose avec ce type de gestionnaires de contenu ? J’ai cherché longuement sur la toile sans succès !

  12. Désolé, mais je connais pas ce CMS, je ne pourrai donc as vous aider. Bonne chance.

  13. Hop, mis en favori ! Merci beaucoup pour ce pas à pas hyper clair :)
    J’ai pris note de l’astuce de Jonathan également.

  14. vz

    Bonjour et merci pour ce tuto
    Je ne sais pas si d’autres ont rencontré ce cas de figure mais j’ai suivi la procédure pas à pas mais lorsque je me connecte en local j’ai le message « Vous n’avez pas les droits suffisants pour accéder à cette page. »
    Est-ce que cela ne proviendrait pas de plugins à desactiver avant export dela BDD ?
    Merci de votre aide

  15. Bonjour,
    Effectivement, l’idéal est de désactiver les plugins avant l’export mais pour ce problème de droits, il s’agit plutôt de bien vérifier les login et l’URL du site.

  16. Bonjour,
    J’avais souvent fait l’inverse mais jamais vers le local.
    …sans soucis.
    Merci pour le boulot.

  17. parlé trop vite… accès admin ok mais tronqué: rien dans la sidebar de gauche (pas de tableau de bord)

  18. Attention tout de même à ceux qui ont installé le plugin Better WP Security. Vous avez sûrement modifié les préfixes des tables et changé l’id de l’admin….

  19. @jb : même une base de 50mo gzippée peut ne pas passer lors de l’import suivant les hébergeur. Chez 1AND1 je crois même que c’est à peine 2Mo. Tu dois scinder ta base et uploader au fur et à mesure ou passer en SSH. Oui, c’est parfois la merde :s

  20. Augustin@Portage salarial

    J’ai lu, relu tester dans tous les sens mais cela n’as jamais fonctionné. J’ai fini par refaire une installation complète.

    Mon problème était le suivant : quand je me rendais sur mon url il ma rajoutais un 4044 à la fin automatiquement. donc ca marchais pas, pourtant j’avais bien changer les url dans la base de donnée..

  21. Souvent, dans ces cas là, il faut revenir sur le back office et aller dans l’onglet « Réglages » puis Général et bien vérifier que l’adresse web de WordPress (URL) et l’adresse web du site (URL) sont bien configurées

  22. Hello et merci beaucoup pour ce tuto qui fonctionne au poil… si ce n’est le fait que les plugins sont tous désactivés et que c’est une vraie galère que de les reprendre un à un pour les régler tout comme notre blog en ligne…

    Y a t’il un moyen rapide et simple de copier-coller les paramètres de tous les plugins ?

    Merci d’avance ! :)

  23. Bonjour,
    Le fait de les laisser activés peut conduire à des conséquences bien plus importantes encore! Certains plugins vous permettent d’enregistrer leurs configurations et d’une manière générale, vaut mieux éviter d’utiliser trop de plugins.

  24. D’acc de fait j’ai pas d’autres choix que de réactiver et reparamétrer tous mes plugins à chaque transfert (local > online ou online > local) ?… :O

  25. Liliane@prestashop

    Bonjour à tous, j’ai un problème contraire à ce que vous expliquez :) Si quelqu’un peut m’éclairer la dessus je lui serais reconnaissante :)

    En fait voilà, ça fait un moment que je bosse sur un blog (avec WordPress) en local, et j’aimerais maintenant le mettre en ligne, donc sur un serveur distant.
    Je me suis occupée de tout ce qui est nom de domaine (NDD, chez gandi) et Hébergement (ovh) et pourtant je galère encore. :/Je m’explique, j’ai réussi à installer wordpress (wp) sur le serveur distant, en y rajoutant mon dossier « contenu » que j’avais alimenté en local, ça marche, mais le blog est vide vu que je n’ai pas importé la base de données (BDD). Quand j’essaye d’importer ma BDD, ça marche, mais j’ai ensuite des problèmes avec les adresses des fichiers (que n’ai pas réussi à modifier). Soit je suis redirigée vers mon localhost directement après mon nom de domaine, soit ça plante.
    Au final je me suis bien emmêlé, et c’est la galère…
    Donc j’aimerais repartir sur de bonnes bases (site wp en local avec kit xampp+ serveur distant ovh) et trouver une aide concrète.

    Merci d’avance à tous!

  26. Bonjour,

    Ca fait deux jours que j’essaie et rien à faire je n’y arrive pas…
    Je n’ai pas tout à fait suivi votre méthode.
    Je reçois des sauvegardes de ma bdd par mail. Donc j’ai crée un base de donnée sur MAMP et j’y ai importé le fichier.sql que je reçois.
    J’ai changé siteurl et home dans wp_option et j’ai mis une adresse locale du type http://localhost:8888/calliframe

    J’ai installé wordpress, configuré et je peux m’identifier. Alors mon site apparaît en local. Mais dès que je clique sur un article je suis redirigée sur mon site en ligne.
    Je sais qu’il y a une histoire d’url là dessous mais je ne sais absolument pas ce que je dois faire pour éviter cette redirection.

    Si qqn pouvait m’aider ça serait magique parce que là je ne sais plus quoi faire… :-(

    Merci.

  27. La méthode que je décris consiste à modifier les uri dès la sauvegarde de la base en ouvrant le fichier et en remplacant l’url en ligne par la locale. Il existe encore d’autres méthodes…

  28. Bonjour,

    donc si je comprends bien, à partir de ma bdd sauvegardée automatiquement par better WP security je ne peux pas changer ces url, non?
    Parce que même si je voulais suivre votre méthode…je ne comprends pas l’étape du « ouvrez le fichier avec le bloc note et changez toutes les url… » quel fichier est-ce?

    Merci.

  29. Peu importe la méthode ou le plugin, le fichier a récupérer est le .sql (donc il faut dézipper le fichier zip téléchargé, database-backup-….). C’est à partir de ce fichier qu’il faut faire les modifications.

  30. Bonjour et bravo pour le tuto,
    il très bien fait et bien explicite, je vais tester dans la journée, et je ferais un retour de comment cela c’est passé …

  31. NathalieName (required)

    Bonjour,

    Cela fait un moment que je cherche sur google pour mon problème et j’ai fait tous les étapes juste au moment que je veux me loguer il indique

    You do not have sufficient permissions to access this page.

    Vous n’avez pas les permissions nécessaires pour accéder à cette page

    Aidez moi svp …

  32. Nathalie

    Tout mes fichier sont 777 mais c’est un tranfert du serveur au local j’ai faire le transfère du ftp au local avec les permission 777 et aussi le phpMyAdmin…

  33. Nathalie

    Merci beaucoup de votre collaboration, mais il n’a rien qui fonctionne j’ai tout tester avec les liens donnés mais je n’ai pas le fichier wp-content/languages/fr_FR.php ça doit être a cause du fait que je suis en anglais dans l’administration j’ai bien mis les clés unique
    J’ai regarder les commentaires et rien ne correspond à mon problème ma version de WordPress 3.5.1

    Je ne sait plus quoi faire…

  34. Je pense pour vous qu’il sera plus facile de faire appel à un spécialiste, si vraiment en reprenant de zéro, rien ne fonctionne encore. Quelles tables avez-vous sauvergardé dans votre fichier .sql? Essayez sans _users et _options…
    P.S: Attention à l’orthographe, merci

  35. Nathalie

    je l’ai fait… Va pas bien !

  36. Tout est ok pour moi pour le transfert depuis mon serveur distant vers mon serveur local sur iPad.
    Par contre, lorsque je clique sur les menus, ça ne marche pas (erreur 404) alors que les url affiche bien « localhost/wordpress »

    J’ai donc trouvé une parade à ce problème. Pour ceux qui, comme moi, ont une structure d’adresse personnalisée (par exemple « http://localhost/wordpress/folio » au lieu de « http://localhost/wordpress/?page_id=13″), il faut faire des modifications dans votre backoffice, partie réglages/permaliens.

    En effet dans mes options permaliens, l’option « structure personnalisée » était sélectionnée avec : « http://localhost/wordpress/%category%/%postname%/ ». j’ai donc changé en sélectionnant l’option « valeur par défaut ». Et tout marche nickel maintenant.

  37. j’ai changé sur le serveur les 2 premières lettres des noms de mes tables de wp_ en info_

    donc, si je garde les 2 tables wp_users cela ne marche pas, en effet quand je vais sur mon site en local, il me réaffiche la page d’install.

    Merci.

  38. Il faut en effet que toutes les tables aient les mêmes préfixes. Là encore, ça se passe dans le fichier config ou bien à l’aide du plugin WP Better Security qui fait ça bien.

    -1
  39. Merci pour ce super tuto. J’ai pu tout transférer facilement alors que j’avais bien bataillé avant !
    Par contre, les images ne s’affichent pas dans mes articles, c’est normal ou j’ai zappé un truc ?

  40. Avez-vous pensez à bien télécharger le répertoire uploads?

  41. Oui, toutes les images sont bien dans « Médias » sur le local, donc les images ont bien été rapatriées, mais dans les articles il semblerait que ça soit l’adresse de l’image qui n’est pas bonne. Comme tous les liens internes

  42. Certaines URL ont du rester sous leur forme « distante », il faut retourner dans la base de données et regarder dans _options si il reste des URL à changer. Quelle adresse s’affiche sur les liens?

  43. En regardant ça à tête reposée… j’ai vu que j’avais 2 « // » dans mes liens alors qu’il ne fallait pas. J’ai modifié ça dans la base de données et tout marche maintenant ! Merci !

  44. sylvie@Art Webdesign

    Merci pour l’article! Mais pourquoi dans ce sens, on en voit très peu voir quasi rien , en serveur vers local??

  45. C’est une blague ce comm’, non? ^^

  46. matboulay

    Bonjour, merci pour ce tuto hyper clair. Peut etre en avez-vous deja parlé mais mon probleme est le suivant : tout se passe bien, jai bien acces à mon interface wordpress en local avec les articles, les plugins, les images. Le probleme est qu’aucun lien ne fonctionne. ce qui veut dire que quand je clique sur les liens (en localhost) j ai un message d erreur : Not Found The requested URL… d’où peut venir l’erreur ? ( jai deja corrigé le double // et fais le rewrite URL dans apache)

  47. Puisque vous parlez de redirections, vérifiez bien votre configuration Apache: Options FollowSymLinks(htaccess), allow url includes(config PHP serveur), et toutes les options de ce genre…

  48. ouali

    Salut tout le monde,
    voilà, j’ai suivi le tuto à la lettre, mais au moment d’importer ma base de données, je me vois afficher le message :

    MySQL a répondu: Documentation
    #1062 – Duplicate entry ‘1’ for key ‘PRIMARY’

    Merci de m’aider.

  49. @ouali : il semblerait que les tables n’est pas été vidées

    dans mon tuto perso, j’ai également ajouté la migration des urls absolues dans la base

    UPDATE wp_posts SET post_content = REPLACE(post_content,’OLD_URL/wp-content/uploads’,’NEW_URL/wp-content/uploads’);
    UPDATE wp_posts SET guid = REPLACE(guid,’OLD_URL/wp-content/uploads’,’NEW_URL/wp-content/uploads’);

  50. Merci pour ta réponse et ton complément d’information, Pat…(ozen)!

  51. Aladin

    bonjour a tous , c’est un exelent tutoriel c’est ca que je cherche , mais j’ai un probleme c’est que lors de connexion admin pour chancher le theme et appliquer des changement sur mon site il m’affiche :
    Vous n’avez pas les droits suffisants pour accéder à cette page
    Merci d’avance.

Les commentaires ne sont pas permis.