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.