Migrer son site WordPress n’est certainement pas une chose que l’on est amené à faire tous les jours, mais n’est-il pas appréciable de savoir que cela se fait en trois clic de souris ?
Je pourrais résumer une migration de site à l’installation d’un nouveau site WordPress, à la nuance prêt que se seront des données provenant de vous et qu’il vous allez surement changer de nom de domaine.
J’ai déjà eu l’occasion de traiter de la question de l’installation de WordPress. Je partirais du principe que vous savez tous installer WordPress, créer une base de donnée, vous connectez à cette base, faire un export et un import avec phpMyAdmin. Si cela vous parle chinois, n’hésitez pas à lire notre article sur l’installation de WordPress.
1 – Sauvegarder ses données
Si vous tenez vraiment à votre site WordPress, j’espère que cette étape ne sera pas nécessaire pour vous, car bien entendu, vous sauvegardez tout très régulièrement.
Si vous ne sauvegardez pas souvent votre site WordPress, sachez que vous devez aussi bien sauvegarder vos fichiers, que les données sauvegardées dans votre base de donnée.
1.1 – Récupérer ses fichiers WordPress
Rien de bien compliqué. Armez-vous de votre client FTP favoris, FileZila étant le notre; connectez-vous; rapatriez l’ensemble des répertoires nécessaires au bon fonctionnement de votre site. Le répertoire WWW étant souvent suffisant. Mais attention au répertoire CGI BIN. Votre site peut très bien avoir besoin de certificat de la banque se trouvant dans ces répertoires… par exemple si l’on parle de WordPress en mode e-commerce.
1.2 – Récupérer ses données WordPress
Ici encore, rien de bien méchant. Connectez-vous à l’interface phpMyAdmin de votre site. Rendez-vous rubrique Exporter de la base qui vous intéresse. Par précaution, je fais toujours deux sauvegardes, une avec Drop Table, l’autre sans. On n’est jamais trop prudent.
2 – Transférer ses données
Maintenant que vous avez toutes vos données, sur votre ordinateur, il vous faut faire le processus inverse; envoyez ces données sur votre nouveau serveur.
On prend les mêmes et on recommence, mais cette fois-ci, vous envoyez vos données sur le serveur FTP, et vous choisissez l’onglet Importer dans le nouveau phpMyAdmin.
L’étape la plus longue ici étant bien souvent d’attendre que le transfert FTP se termine, ADSL oblige.
3 – Petits réglages entre amis
Une fois vos données transférées sur le nouveau serveur avec succès, il se pourrait que vous soyez confronté à l’obligation de faire certains petits réglages. Tout dépend du cas de figure.
3.1 – J’ai changé de base de donnée
Naturellement, si vous changez de serveur, il y a de très fortes probabilités que le mot de passe de connexion à MySQL ne soit plus le bon, voir que l’utilisateur ait changé, ainsi que le nom de la table.
Une des étapes nécessaire pour voire le site migré être fonctionnel est d’éditer le fichier wp-config.php.
Remplacez les données par celles qui sont désormais les bonnes.
3.2 – Je n’ai pas changé de nom de domaine
Dans ce cas… votre migration est maintenant terminée. Il vous est possible de vous connecter sur ce site comme vous le faisiez sur le précédent.
Facile n’est-il pas ?
3.2 – J’ai changé de nom de domaine
Si votre migration implique aussi un changement de nom de domaine, il va falloir alors le dire à WordPress. Et pour lui dire, pas de secret, on va devoir passer par les tables de la base de donnée. Pourquoi ? Car WordPress stock le nom de domaine comme une variable dans la base de donnée. Ainsi, lorsque vous changez de nom de domaine, votre ancienne installation ne sera pas directement accessible après avoir copié les données.
Si votre site fait une certaine taille, on peut vite imaginer qu’éditer la base au travers de phpMyAdmin relève de l’art. Mais comme tout est merveilleux dans le monde WordPress, un petit script va nous prendre par la main pour changer l’URL dans votre base de donnée. Que du bonheur.
J’aurais tendance à dire qu’avant d’utiliser ce script, je vous invite très fortement à faire une sauvegarde de votre base de donnée. Mais compte tenu de la situation, vous devez déjà travailler à partir d’une sauvegarde. Donc tout va bien.
Le script dont je parle se nomme WordPress Search and Replace. Notez que ce script peut vous être utile dans d’autres situations que la notre; mais il faut aussi admettre qu’il est particulièrement utile aussi dans ce cas.
Pour changer le nom de domaine dans la base de WordPress, il faut télécharger ce script sur la racine du site en question, et de l’appeler à partir de votre navigateur web chéri.
Une fois connecté au script, voici ce que vous obtiendrez :
Ce script étant bien fait, il vous invite à récupérer automatiquement les informations à partir du fichier wp-config.php. Si celui-ci est bien renseigné, laissez le script faire le travail pour vous.
Vérifiez tout de même que tout vous semble correct.
Sélectionnez ensuite les tables sur lesquels porte votre recherche. Pour notre petite affaire, se limiter à la table _options et _postmeta sera suffisant. Attention à ne pas trop en sélectionner non plus, il se pourrait que le nom de domaine ait été utilisé pour créer le thème par exemple. Il ne faudrait pas venir interférer là où il ne faudrait pas.
C’est ici que les choses sérieuses arrivent. C’est le moment de donner la chaîne de caractère à rechercher et celle qui servira de remplacement. Ici, il est très important de bien faire les choses. L’URL de votre ancien site est stocké sous la forme http://www.monsiteamoi.com.
Il vous faut donc faire une recherche du type http://www.monsiteamoi.com et un remplacement du type http://www.monnouveausiteamoi.com.
On prend le temps de se relire deux fois, et on envoi la requête de remplacement.
Une fois celle-ci effectuée, un retour vous informe du déroulement de l’action.
Testez votre site WordPress et,Oh, magie, votre migration est parfaitement fonctionnelle.
Mais un petit détail avant d’en avoir complètement terminé avec votre migration de site WordPress, pensez à bien supprimer le script de votre serveur web. En effet, celui-ci étant accessible par n’importe qui, il ne serait pas étonnant que des vers exploitent une faille de type interface chaise / clavier de j’ai oublier de retirer un script qui permet de tout changer dans ma base de donnée, par le premier venu. On vous aura prévenu 😉
C’est encore moi!
Certaines pages créées sur l’ancien site avec des extensions (par exmple MapsMarkerPro) pointent encore sur l’ancien site. Comment les rapatrier?
Bonjour et merci pour ce tutoriel, vraiment très simple et très bien expliqué pas à pas.
Une petite question : Ma bibliothèque de medias contient des images liées à l’ancien site; Dois-je effecar tout et recharger chaque image sur le nouveau site ?
Merci beaucoup ! Très bonne explication et tout marche très bien 🙂
Merci beaucoup pour cet article !
Une migration qui s’est passée sans soucis.
de loin la meilleure explication. Merci merci merci
Bizarrement à chaque fois que je mets en ligne un wp j’ai des problèmes différents -_-” après avoir suivi toutes ces manips que j’ai déjà fait plusieurs fois pour d’autres sites, j’obtiens ma page avec la moitié des éléments (pas de header/footer…) et ma page d’admin est inaccessible (il affiche du php brut…)
Comme Frank j’édite directement la bdd depuis un éditeur de texte (Komodo) peut être que ça vient d’ici mais je gamberge un peu ^^”
Merci beaucoup pour cette article ! Ca m’as sortis d’affaire 🙂
Bonjour,
Merci pour le tuto? J’ai cependant un drole de soucis, ma page principale a bien migré vers le nouveau serveur mais lorsqu’on clique sur un lien, une image, il y a une redirection vers l’ancien serveur.
Une idée ?
Merci !
bonsoir, avez vous modifié dans la base de données tous les tables nécessaires?
Je vais tester ça asap, merci pour ces éclaircissements.
Bonjour
merci pour ce tuto très intéressant, mais est-ce que le fait d’opérer cette “migration” peut jouer sur le référencement du blog?
Oui et non.
Si tu en profites aussi pour changer de domaine, oui. Si ce n’est qu’un simple changement de serveur, non. Toutefois, attention à l’adresse IP du serveur.
Bonjour,
je suis en grosse déprime. J’ai migré mon site vers une nouvelle url et plus rien ne fonctionne.
J’ai modifié les paramètres du wp-config et je comprends bien qu’il faudrait désormais suivre ton tuto en utilisant “search and replace”.
Problème: quand j’essaie de me connecter à mon wordpress, voici le message qu’on me renvoie: Fatal error: Call to undefined function force_ssl_admin() in /homez.744/xnamliorm/www/wp-login.php on line 15
Que faire???
Merci d’avance.
15 jours que ca dure…..
bonsoir,
il serait plus facile de vous aider sur un forum comme wordpress-fr.net
wp-config.php doit avoir les identifiants pour votre base de données.
Ce tutorial est très bien , et j’en remercie son auteur… Mais en qualité de débutant je met beaucoup plus que 3 minutes pour réaliser une migration d’hebergement (et nom de domaine) de mon WordPress… Est il possible de mofidier cet article et de l’agrémenter, car certains point ne sont pas assez détaillé (et/ou expliqué):
Par exemple:
1.2 – Récupérer ses données WordPress // ….Concernant l’exportation des bases de données et l’utilisation de PhpMydmin n’est pas assez détaillé , ou cliquez , comment choisir ses bases; Une fois exporter , on copie et on colle où, a quel format? etc …
Merci pour tout, j’aimerais finir ma migration correctement…. Et je veux passer par ce super tuto!
Merci pour le tuto. Le script fonctionne très bien.
WordPress est un très bon CMS mais je ne connais pas la raison de ce système d’urls enregistrées dans la BDD. Si on compare avec un CMS comme Joomla! ou prestashop où il suffit de modifier le fichier de config.php et le site est migré facilement. Vous savez pourquoi c’est comme ça sur WordPress ?
bonsoir,
comment faire pour qu’un site dans un sous-dossier et son propre nom de domaine?
http://www.site1.com/blog vers http://www.site2.com
merci
Merci pour ces explications.
Pour info, il y a un plugin du nom de DataBackupMove qui permet de faire tout cela en une seule fois 🙂
Bon, soyons franc, ça ne m’a pas pris 3 mn, mais j’ai réussi en n’ayant que de faibles connaissances!
Merci bcp pour le tutto, très clair!
Pour ma part, une fois l’exportation de la base effectuée, je l’édite avec un simple éditeur de texte (Notepad++)
je fait un remplacer (Ctrl+H)
cherche “http://www.monancien.fr”
remplacer par : “http://www.monnouveau.fr”
sauvegarde, puis je re-injecte la base .sql ainsi modifiée
je n’ai jamais eu de souci avec cette manip , et elle a l’avantage de ne pas faire appelle a un script
Bonjour,
merci pour ce tuto.
Pour ma part pour ce qui est de la migration de la BDD, j’utilise le plig in WP Migrate BD :
http://wordpress.org/extend/plugins/wp-migrate-db/
qui permet de modifier le nom de domaine et le répertoire du futur site.
Il est très pratique quand on veut passer de local sur serveur de prod ou serveur test en prod.
bonjour,
en ce moment, WordPress nous donne du fil à retordre. Pour ma part j’ai un tuto qui permet de faire des migrations WordPress via SSH, quand via l’interface ce n’est pas possible.
C’est une alternative qui peut servir, en complément http://www.unpeudeseo.com/2012/09/10/mise-a-jour-manuelle-wordpress/
Super article, grace à lui migration d’un site de dev vers prod en 10 min!
Merci à vous
J’aurais bien aimé lire ce post la semaine dernière, je me suis tout tapé à la main.
Je bookmark !
Merci pour cet excellent outil.
Voila une opération complexe, pas ouverte au premier venu (comprendre au non-technique), qui devient soudain nettement plus facile … Avec foison d’impressions-écran, c’est tout de suite plus facile !
Forcément, c’est facilité par l’utilisation du script final de recherche/remplace.
Je rajouterais que, si ce n’était pas le cas avant la migration, ajouter des sauvegardes automatiques de son blog est une riche idée. Tant qu’à l’avoir ponctuellement pour la migration, autant systématiser l’opération 🙂