Publié par le 10 juillet 2015 • 282 Commentaires

Pour la rédaction de Relooker son Thème, j’ai eu besoin de comparer les plugins dédiés à la migration de sites WordPress.

Par migrer, je veux dire déplacer un site à un autre endroit pour pouvoir travailler dessus sans toucher au site principal.

Ces recherches m’ont permis de peser le pour et le contre de chaque plugin et de trouver le meilleur.

Je partagerai cela prochainement avec la publication d’un comparatif détaillé sur ces plugins.

En attendant, je vous propose de découvrir comment procéder à une migration manuelle avec Aurélien, un nouveau cuistot.

Déplacer un site WordPress à la main est un peu plus complexe qu’avec un plugin mais il est toujours intéressant de comprendre comment les choses fonctionnent.

J’espère que ce nouveau tutoriel vous sera utile. Aurélien, c’est à toi 🙂

La mise en production d’un site est une étape inhérente à chaque projet web.

Si elle fait partie de la routine de l’habitué de WordPress, elle peut devenir un casse-tête si on s’y prend mal.

Voici une recette pour éviter toute aigreur d’estomac lors de la migration de votre site WordPress.

Disons-le tout de suite, ce tutoriel n’est pas seulement utile pour le passage d’un site en production. Il s’applique à la procédure de migration en général.

En bref, vous pouvez y recourir dès lors que vous souhaitez :

  • changer le nom de domaine de votre site
  • déplacer un site sur un autre serveur
  • migrer un site local en ligne

Nous allons voir comment procéder étape par étape, manuellement.

Il existe des plugins qui automatisent la migration, mais avant d’en parler, il est toujours bon de faire un point sur la manière de faire artisanale, the old-fashioned way 🙂

L’enjeu de la migration

Comment migrer WordPress manuellementPour faire court, la migration consiste à déménager votre site d’un serveur à l’autre et/ou à changer son nom de domaine.

Il va donc falloir intervenir à deux niveaux :

  • les fichiers du site (FTP)
  • les contenus du site (Base de données)

Voyons comment faire en 7 étapes.

1. Sauvegarder les fichiers du site

transmit

Transmit, un client FTP pour Mac

La première chose que vous allez devoir faire, c’est sauvegarder votre site. Autrement dit, le télécharger sur votre ordinateur.

Pour cela, connectez-vous à votre serveur FTP avec le client de votre choix. Vous pouvez allez voir du côté de Filezilla ou si vous êtes dispendieux, je ne saurais que trop vous conseiller Transmit.

Une fois le programme téléchargé vous aurez à indiquer trois informations pour vous connecter : le serveur ; le nom d’utilisateur et le mot de passe.

Une fois connecté, transférer l’intégralité des fichiers sur votre poste.

Note d’Alex : Vous pouvez aussi vous baser sur une sauvegarde réalisée grâce à un plugin.

2. Exporter votre base de données

Deuxième étape, récupérer les contenus et les réglages de votre site. Ces informations sont stockées dans votre base de données.

Pour s’y connecter, vous pouvez utiliser un client web comme phpMyAdmin (généralement accessible depuis l’espace client de votre hébergeur) ou bien un programme à l’interface un peu plus convivial tel que Sequel (pour Mac uniquement).

Si vous n’avez pas sous la main les informations nécessaires pour établir la connexion, elles sont regroupées dans le fichier wp-config.php de votre site WordPress.

Ce fichier se trouve à la racine de votre site, c’est lui qui permet la liaison avec la base de données. Il faudra récupérer :

  • le nom de la base de données
  • le nom d’utilisateur
  • le mot de passe
  • et l’hôte
<?php

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'votre_nom_de_bdd');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'votre_utilisateur_de_bdd');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'votre_mdp_de_bdd');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

Une fois connecté à la base de données, il faut l’exporter. Pour cela, sous phpMyAdmin, cliquez sur Exporter et choisissez les options suivantes :

  • Méthode d’exportation : personnalisée
  • Sélectionner toutes les tables (normalement, c’est déjà le cas)
  • Cocher Diriger la sortie vers un fichier
  • Cliquez sur Exécuter en bas de page.

Cela téléchargera votre base de données en un fichier .sql.

phpmyadmin

phpMyAdmin : cliquez sur Exécuter en bas de page

3. Créer la nouvelle base de données

Maintenant que vous avez récupéré l’intégralité de votre site, il faut préparer sa mise en production.

Pour commencer, il faut créer une base de données sur votre nouveau serveur. Pour cela, il faut une nouvelle fois se connecter avec phpMyAdmin.

Bien entendu, vous utiliserez les informations de connexion du nouveau serveur.

Dans la colonne de droite vous aurez la possibilité de créer une nouvelle base :

Créer une nouvelle base de données dans PHPMyAdmin

Donnez-lui ensuite un nom (plus il sera compliqué mieux ce sera) puis cliquez sur Créer :

Donner un nom à la nouvelle base

4. Importer la base de données

Cette nouvelle base de données créée, vous allez maintenant y importer la base de données téléchargée précédemment.

Souvenez-vous, le fichier .sql. Pour cela, cliquez sur l’onglet Importer et avec l’option Parcourir allez chercher votre fichier.

Une fois votre fichier sélectionné, cliquez sur Exécuter.

Importer la base de données

5. Mettre à jour wp-config.php

Maintenant que cette nouvelle base de données est en place, ouvrez le fichier wp-config.php et mettez à jour les quatre informations vues plus haut (le nom de la base de données, le nom d’utilisateur, le mot de passe et l’hôte).

Cela va permettre d’établir la connexion entre votre site et sa nouvelle base de données.

6. Mettre en ligne les fichiers sur le nouvel FTP

Connectez-vous maintenant à votre nouveau serveur FTP et envoyez les fichiers de votre site, incluant votre fichier wp-config.php fraîchement mis à jour.

Pendant que vos fichiers se mettent en ligne, profitez du temps alloué pour lire quelques recettes de la Marmite 🙂

7. Mettre à jour les urls de votre nouveau site

Note : Cette manipulation est inutile si l’adresse de votre site ne change pas.

Faisons le point : tous vos fichiers sont maintenant présents sur votre nouveau serveur, notamment votre fichier wp-config.php qui a été mis à jour.

Vous avez créé une nouvelle base de données dans laquelle vous avez importé votre base initiale.

Mais voilà, ce n’est pas fini, vous ne pouvez pas encore accéder à votre site.

La raison est simple : l’ancienne adresse du site est encore présente dans la base de données.

Pour mettre à jour les urls du site, je vous recommande l’utilisation du script Search-Replace-DB de Interconnectit.

Pour l’utiliser, c’est simple, vous le téléchargez et vous le mettez en ligne à la racine de votre site. Vous vous rendez ensuite sur http://www.votresite.com/Search-Replace-DB-master/ (le dossier du script).

Une page apparaîtra vous permettant de remplacer facilement l’ancienne adresse par la nouvelle.

Normalement, le script va récupérer automatiquement les informations de connexion de votre base de données via le fichier wp-config.php.

search-replace

La page du script Search-Replace-DB

Veillez à mettre uniquement l’adresse des sites (sans « / » à la fin). Cela nous donne :

  • Remplace : http://www.ancienneurl.com
  • par : http://www.nouveleurl.com

Cliquez sur Dry run pour faire un essai. C’est à dire que le script ne remplacera pas les valeurs dans la base de données.

Attention : vérifiez bien les valeurs avant de procéder au remplacement des valeurs dans la base de données.

Pour lancer réellement le script, cliquez sur le bouton Live run. 

Une fois la manipulation achevée, veillez bien à supprimer le dossier du script (Search-Replace-DB-master) pour des questions de sécurité.

Il serait dommage que quelqu’un d’autre change des valeurs dans votre base (ou vous vole vos identifiants de base de données).

Notez que ce script prend en compte les données sérialisées (serialized data), la mise à jour des urls sera donc complète.

Vous pourriez avoir des problèmes si vous utilisiez une méthode de bûcheron, comme ouvrir votre fichier .sql avec votre éditeur de texte puis un chercher/remplacer directement dans le fichier.

Certaines urls étant sérialisées (cryptées, si vous préférez), elles passeraient à l’as et vous auriez donc des liens morts.

Les derniers réglages

Afin de vous assurer que tout fonctionne correctement, connectez-vous à la nouvelle adresse.

Si vous voyez des erreurs 404 ou constatez des problèmes, faîtes un tour dans Réglages > Permaliens et sauvegardez les paramètres. Cela devrait tout faire rentrer dans l’ordre.

Je vous recommande un petit test final pour s’assurer qu’il n’y a plus aucune 404, passez votre site à la moulinette avec Xenu (PC) ou Integrity (Mac).

Ces logiciels testent les réponses serveur pour chaque page du site et vous permettent de voir facilement s’il y a des liens cassés.

À vous maintenant les migrations sereines 🙂

Conclusion

Migrer son site manuellement peut être un challenge si vous n’avez pas l’habitude de procéder à ce genre de manipulation.

Cela reste tout de même un excellent moyen de comprendre comment sont liés les fichiers et la base de données de WordPress.

Comment procédez-vous pour effectuer des migrations ? Manuellement, par un plugin ou par un service tiers comme Blogvault ?