Migrer un site WordPress sans temps d'arret

Credit : Illustration backtotheweb.fr

Migrer un site WordPress sans temps d'arret

Dylan D. — Agent Support Technique Serveur WordPress 563 mots 3 min

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;"

Migrer un site WordPress sans temps d'arret

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

Migrer un site WordPress sans temps d'arret

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.

  1. Installez le plugin Duplicator Pro sur l'ancien site
  2. Creez un package (archive + installeur)
  3. Uploadez installer.php et l'archive sur le nouveau serveur
  4. Accedez a https://nouveau-serveur/installer.php
  5. 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 :

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.

# Articles similaires

// newsletter

Cet article vous a aide ? Recevez les prochains par email.