Migrer WordPress avec WP-CLI vers un nouveau serveur

Migrer WordPress n’a pas à être stressant. Avec WP-CLI, vous orchestrez chaque étape en ligne de commande : c’est plus rapide, scriptable et reproductible.

Au programme : sauvegarde propre, transfert net, import SQL, search-replace sans casse et permissions verrouillées. Vous évitez les plugins lourds, vous gagnez en contrôle et vous limitez les surprises.

Notez que ce tutoriel ne couvre pas l’installation d’une pile serveur Web comme LEMP ou LAMP. Je recommande bien sûr NGINX et MariaDB.

Liste des tâches du tutoriel

Ancien serveur WordPress

  • Installer WP-CLI sur l’ancien serveur
  • Sauvegarder l’installation WordPress et la base de données
  • Transférer les sauvegardes vers le nouveau serveur

Nouveau serveur WordPress

  • Créer une nouvelle base de données sur le nouveau serveur
  • Restaurer l’ancienne base sur la base du nouveau serveur
  • Installer WordPress sur le nouveau serveur

Préparer l’ancien serveur WordPress

Installer WP-CLI

sudo wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /usr/bin/wp
sudo chmod 755 /usr/bin/wpCode language: JavaScript (javascript)

Entrer dans votre dossier WordPress

cd /var/www/wp-oldCode language: JavaScript (javascript)

Exporter votre base de données

mkdir -p ~/backups
wp db export ~/backups/wp-old.sql --allow-root --skip-themes --skip-plugins

Créer une archive de votre dossier WordPress

Le . inclut tous les fichiers et dossiers du répertoire courant.
L’option -z ajoute la compression gzip.

tar -czf ~/backups/wp-old.tar.gz .Code language: JavaScript (javascript)

Notez le préfixe de table dans wp-config.php : vous devrez le renseigner pour que la restauration fonctionne sur le nouveau serveur.

Vous avez maintenant, dans le dossier ~/backups, une sauvegarde de la base de données et une archive complète du site.

Transférez ces deux fichiers sur votre ordinateur via SFTP ou SSH.

Préparer le nouveau serveur WordPress

Votre pile Web doit déjà être prête sur le nouveau serveur.

Transférez votre sauvegarde SQL et l’archive tar de la sauvegarde du site depuis l’ancien serveur vers le nouveau serveur. Je les place généralement dans ~/restore.

Installer WP-CLI (PHP requis)

sudo wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /usr/bin/wp
sudo chmod 755 /usr/bin/wpCode language: JavaScript (javascript)

Créer une base de données WordPress vide

mysql -u root -p

Ces identifiants seront utilisés dans le fichier wp-config.php.

CREATE USER wordpressuser@localhost IDENTIFIED BY 'passw0rd';
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost IDENTIFIED BY 'passw0rd';
FLUSH PRIVILEGES;
quit;Code language: CSS (css)

Créer le répertoire WordPress

sudo mkdir -p /var/www/wp-devCode language: JavaScript (javascript)

Entrer dans le répertoire

cd /var/www/wp-devCode language: JavaScript (javascript)

Télécharger les fichiers du cœur WordPress

wp core download --allow-root

Créer wp-config.php avec les identifiants MySQL

Pour --prefix, indiquez votre préfixe personnalisé si vous n’utilisez pas le standard wp_.

wp core config --dbname=wordpress --dbuser=wordpressuser --dbpass=passw0rd --allow-root --dbprefix=wpkfeppfef939_

Installer WordPress

wp core install --url=wp-dev.com --title="WP Dev" --admin_user=wp-dev --admin_password=passw0rd --admin_email=admin@wp-dev.com --skip-email --allow-rootCode language: JavaScript (javascript)

Si vous utilisez la structure de permaliens classique, WP-CLI peut également la définir. Les utilisateurs d’Apache devront se connecter et enregistrer ces réglages pour générer le fichier .htaccess.

wp option update permalink_structure '/%postname%' --allow-rootCode language: JavaScript (javascript)

Il est temps d’effectuer la restauration de l’ancienne base de données et du dossier WordPress vers l’emplacement du nouveau site.

Si vous exécutez les commandes en tant que root, placez la sauvegarde ici : /root/restore/wp-old.sql.

wp db import ~/restore/wp-old.sql --allow-rootCode language: JavaScript (javascript)

Effectuez ensuite une recherche/remplacement de l’ancien nom de domaine vers le nouveau. WP-CLI gère ça pour nous.

Test à blanc d’abord :

wp search-replace wp-old.com wp-dev.com --dry-run --allow-rootCode language: CSS (css)

Si tout est correct, relancez sans --dry-run pour appliquer les changements :

wp search-replace wp-old.com wp-dev.com --allow-rootCode language: CSS (css)

Décompressez maintenant l’archive tar dans le dossier WordPress du nouveau site, en excluant le wp-config.php original, puisque nous l’avons déjà généré avec WP-CLI.

tar -xzf ~/restore/wp-old.tar.gz -C /var/www/wp-dev --exclude=wp-config.phpCode language: JavaScript (javascript)

Appliquez des permissions et propriétaires recommandés et sécurisés :

sudo chown -R www-data:www-data /var/www/
sudo find /var/www/ -type f -exec chmod 640 {} +
sudo find /var/www/ -type d -exec chmod 750 {} +Code language: JavaScript (javascript)

Et voilà. Votre site tourne sur le nouveau serveur, proprement et sans plugins. Vous avez exporté la base, restauré les fichiers, exécuté le search-replace, puis sécurisé les permissions.

Pour finaliser, vérifiez les permaliens, purgez les caches et testez les formulaires et la livraison d’e-mails. Gardez un œil sur le préfixe de tables, les WP_HOME/WP_SITEURL et les propriétaires de fichiers : ce sont les pièges classiques.

Des obstacles techniques ? Je trouve des solutions sur-mesure pour que votre site WordPress/WooCommerce fonctionne sans accroc.

Contactez-moi pour un diagnostic gratuit »

Matt

Développeur certifié WordPress & WooCommerce chez Codeable, administrateur système et enseignant-chercheur, je mets mon expertise au service de vos projets web.

Ma priorité : des sites performants, fiables et sécurisés, pensés pour offrir la meilleure expérience utilisateur. J’accompagne chaque client avec écoute et pédagogie, pour transformer vos idées en solutions concrètes et durables.

Profitez de solutions WordPress et WooCommerce sur-mesure, pensées pour optimiser durablement votre site.
Explorez les leviers pour booster l’impact de votre site web.

Opinions