Credit : Illustration backtotheweb.fr
Migrer un site WordPress sans temps d'arret
La strategie de migration zero downtime
Bon, on va pas se mentir, c'est un sujet qui revient souvent.
Migrer un site WordPress peut sembler risque, mais avec la bonne methode, vos visiteurs ne remarqueront rien. Le principe : preparer le nouveau serveur en parallele, synchroniser les donnees, puis basculer le DNS.
Nous allons combiner Duplicator, WP-CLI, rsync et une bascule DNS propre.
Etape 1 : Preparer le nouveau serveur IONOS
Sur votre nouveau serveur IONOS, installez la stack LEMP :
sudo apt update && sudo apt install nginx mariadb-server php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip php8.2-gd -y
sudo mysql_secure_installation
Creez la base de donnees :
sudo mysql -e "CREATE DATABASE wordpress_new; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'MotDePassefort123!'; GRANT ALL ON wordpress_new.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES;"
Etape 2 : Copier les fichiers avec rsync
Depuis l'ancien serveur, synchronisez les fichiers WordPress :
# Premiere synchronisation complete
rsync -avz --progress -e "ssh -p 22" /var/www/wordpress/ user@nouveau-serveur:/var/www/wordpress/
# Les synchros suivantes seront incrementales (seuls les fichiers modifies)
rsync -avz --delete -e "ssh -p 22" /var/www/wordpress/ user@nouveau-serveur:/var/www/wordpress/
L'option --delete supprime sur la destination les fichiers qui n'existent plus sur la source.
Etape 3 : Exporter la base avec WP-CLI
WP-CLI est l'outil en ligne de commande officiel de WordPress :
# Sur l'ancien serveur
wp db export backup-migration.sql --path=/var/www/wordpress
scp backup-migration.sql user@nouveau-serveur:/tmp/
# Sur le nouveau serveur
wp db import /tmp/backup-migration.sql --path=/var/www/wordpress
Etape 4 : Mettre a jour les URLs
Si le domaine change ou si vous passez en HTTPS :
wp search-replace 'http://ancien-domaine.fr' 'https://nouveau-domaine.fr' --path=/var/www/wordpress --all-tables --precise
Verifiez le resultat :
wp option get siteurl --path=/var/www/wordpress
wp option get home --path=/var/www/wordpress
Methode alternative : Duplicator Pro
Si vous preferez une interface graphique :
Astuce : j'ai appris ça à la dure après un incident en prod un vendredi soir.
- Installez le plugin Duplicator Pro sur l'ancien site
- Creez un package (archive + installeur)
- Uploadez
installer.phpet l'archive sur le nouveau serveur - Accedez a
https://nouveau-serveur/installer.php - Suivez l'assistant de restauration
Duplicator gere automatiquement le remplacement des URLs et la configuration de la base.
Etape 5 : Tester avant la bascule
Modifiez votre fichier /etc/hosts local pour pointer vers le nouveau serveur :
# Sur votre machine locale
echo "203.0.113.50 monsite.fr www.monsite.fr" | sudo tee -a /etc/hosts
Testez toutes les pages critiques, les formulaires, le panier si c'est du WooCommerce.
Etape 6 : Synchronisation finale et bascule DNS
Le jour J, faites une derniere synchronisation :
# Derniere synchro des fichiers modifies
rsync -avz --delete -e ssh /var/www/wordpress/ user@nouveau-serveur:/var/www/wordpress/
# Export et import final de la base
wp db export --path=/var/www/wordpress | ssh user@nouveau-serveur 'wp db import - --path=/var/www/wordpress'
Puis modifiez les enregistrements DNS dans votre interface IONOS :
- A : nouvelle IP du serveur
- AAAA : nouvelle IPv6 (si applicable)
- Baissez le TTL a 300 secondes 24h avant la migration
Verification post-migration
# Verifier la propagation DNS
dig monsite.fr +short
# Verifier le certificat SSL
curl -vI https://monsite.fr 2>&1 | grep 'subject:'
# Flush le cache WordPress
wp cache flush --path=/var/www/wordpress
Supprimez ensuite la ligne ajoutee dans /etc/hosts. Votre site est migre sans aucune interruption.