(modifié le 17 juillet 2022 à 1:43)

migrer-wordpressLa semaine dernière, Blogmotion déménageait de serveur. Voici un petit guide de migration tranquille, pour limiter un maximum l'impact de ce changement qui peut se faire sans qu'une coupure ne soit ressentie par les visiteurs.

Ce guide concerne uniquement le changement d'adresse du serveur MySQL, consultez aussi mon billet décrivant la sauvegarde complète d'un site web.

Ce guide concerne la plateforme WordPress, avec une base de données MySQL, le tout migrant depuis un serveur Linux Debian (dédié) vers un autre serveur du même type. Fonctionne également en environnement mutualisé ayant un accès SSH.

MàJ 2022 : en complément consultez l'article Tecmint "MySQL Backup and Restore Commands for Database Administration"

1 : Exporter la base de données

Si vous êtes sur un serveur mutualisé, vous devez exporter votre base avec un outil fourni par votre hébergeur, tel que PhpMyAdmin, mais vous devrez sûrement segmenter l'export à cause de la limitation de l'import par la suite (2 Mo par defaut).

Il vous suffit de lancer l'export de votre base de données via une connexion SSH (en root) :

mysqldump <base> -h <serveur> -u <utilisateur sql> -p > /chemin/vers/export.sql

Ce qui peut par exemple être :

mysqldump blogbase -h sql.blogmotion.fr -u bloguser -p > ./export.sql

2 : Envoyer l'export

Il nous faut maintenant envoyer l'export vers le nouveau serveur. Vous pouvez pour cela le faire via FTP, SFTP, HTTP, etc.

Mais la solution la plus adaptée dans ce genre de situation reste le transfert via la commande rsync.

Toujours en root :

rsync -e ssh /chemin/versexport.sql utilisateur@ip_nouveauserveur:/chemin/destination

L'ip peut également être le nom de domaine, ou encore le reverseip 😉

Par exemple :

rsync -e ssh /export.sql 90.0.0.1:/root/

Je n'ai pas précisé l'utilisateur car étant en root sur le premier serveur, la connexion s'effctura en root sur le second. Le serveur va de toute façon demander le mot de passe associé, qu'il vous faudra entrer.

3 : Import de la base de données

Il nous reste à importer toutes les données de la base contenues dans le fichier d'export sql sur notre nouveau serveur. J'avais par ailleurs déjà abordé ce thème lors d'un précédent billet.

Si vous avez compressé le fichier en GZ (à ne pas confondre avec TAR.GZ) il faut d'abord l'extraire :

gunzip votre-fichier.gz

Etablir une connexion SSH en tant que super utilisateur (root) :

mysqldump <base> -h <serveur> -u <utilisateur sql> -p < /chemin/vers/export.sql

Ce qui donne chez moi :

mysqldump blogbase -h sql.blogmotion.fr -u bloguser -p < ./export.sql

Fichiers de configuration

Pensez également à modifier (si nécessaire) certaines valeurs dans le fichier /wp-config.php :

  • l'adresse du serveur MySQL (si c'est "localhost" vous êtes tranquille)
  • le nom de la base de données
  • le nom de l'utilisateur MySQL
  • le mot de passe de l'utilisateur MySQL

Ainsi que vos scripts personnels si vous en avez (pages concours, etc).

Conclusion

Essayer de réaliser ces opérations dans un minimum de temps si vous ne coupez pas l'accès au blog. En effet, si vous recevez un nouveau commentaire après l'export, celui-ci passera à la trappe.

Pour pallier à ceci, vous pouvez restreindre l'accès au blog à l'aide d'un .htaccess (lire "précautions et informations") limitant l'accès à votre seule adresse IP le temps de la migration.

L'idéal étant de préparer le nouveau serveur (création de la base, de l'utilisateur MySQL, etc.) avant de couper l'accès au blog.

Grâce à cette technique, personne ne s'est rendu compte du changement de serveur pour Blogmotion, pourtant réalisé en soirée, heure importante en terme de visites, mais sans coupure 😉

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter