Migrer un site WordPress d’un hébergement à un autre peut sembler intimidant, mais avec la bonne méthode, c’est une opération rapide et fiable. Voici un guide pas-à-pas pour cloner un site WordPress sur un nouveau VPS vierge, sans utiliser de plugin commercial.
🧰 Prérequis
- Un site WordPress fonctionnel à migrer
- Un accès SSH à l’ancien hébergement
- Un nouveau VPS vierge (Debian ou Ubuntu recommandé)
- Un nom de domaine pointant vers le nouveau VPS (ou un accès via IP temporaire)
rsync
,mysqldump
,tar
,scp
,wget
installés- Un minimum de 15 minutes et un peu de rigueur
Étape 1 – Sauvegarder les fichiers du site WordPress
Connectez-vous à l’ancien serveur (source) :
ssh user@serveur-source
Placez-vous à la racine du site (souvent /var/www/html
, /home/user/public_html
ou autre) :
cd /chemin/vers/votre/site
Créez une archive .tar.gz
des fichiers :
tar -czf wordpress_files.tar.gz .
Étape 2 – Exporter la base de données
Utilisez mysqldump
pour exporter la base de données WordPress :
mysqldump -u root -p nom_de_la_bdd > wordpress_db.sql
Vous pouvez grouper fichiers + base dans une seule archive :
tar -czf full_wordpress_backup.tar.gz wordpress_files.tar.gz wordpress_db.sql
Étape 3 – Transférer l’archive sur le nouveau VPS
Depuis le serveur source :
scp full_wordpress_backup.tar.gz user@IP_DU_NOUVEAU_VPS:/home/user/
Étape 4 – Préparer le nouveau VPS
Connectez-vous au nouveau VPS :
ssh user@IP_DU_NOUVEAU_VPS
Mettez à jour votre système :
sudo apt update && sudo apt upgrade -y
Installez les dépendances WordPress :
sudo apt install apache2 mariadb-server php php-mysql libapache2-mod-php php-cli php-curl php-xml php-mbstring php-zip unzip -y
Activez Apache et MariaDB :
sudo systemctl enable apache2 --now
sudo systemctl enable mariadb --now
Sécurisez MariaDB :
sudo mysql_secure_installation
Créez la base de données WordPress :
sudo mysql -u root -p
CREATE DATABASE wp_db;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'motdepassefort';
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Étape 5 – Déployer les fichiers sur le nouveau VPS
Décompressez l’archive :
tar -xzf full_wordpress_backup.tar.gz
tar -xzf wordpress_files.tar.gz
Déplacez les fichiers dans /var/www/html
:
sudo rm -rf /var/www/html/*
sudo mv * /var/www/html/
sudo chown -R www-data:www-data /var/www/html
Étape 6 – Importer la base de données
Importez le fichier .sql
dans la base que vous venez de créer :
sudo mysql -u wp_user -p wp_db < wordpress_db.sql
Étape 7 – Adapter le fichier wp-config.php
Ouvrez /var/www/html/wp-config.php
et modifiez les lignes suivantes :
define( 'DB_NAME', 'wp_db' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'motdepassefort' );
define( 'DB_HOST', 'localhost' );
Étape 8 – Configurer Apache
Créez un hôte virtuel si nécessaire :
sudo nano /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
ServerAdmin admin@votre-domaine.fr
DocumentRoot /var/www/html
ServerName votre-domaine.fr
<Directory /var/www/html>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activez le site et les modules nécessaires :
sudo a2ensite wordpress.conf
sudo a2enmod rewrite
sudo systemctl reload apache2
Étape 9 – Adapter l’URL du site si l’adresse change
Si vous avez changé de domaine ou d’IP, mettez à jour les URLs dans la base :
wp search-replace 'http://ancien-domaine' 'http://nouveau-domaine' --allow-root
Si WP-CLI n’est pas installé :
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Lancez la commande depuis /var/www/html
.
Étape 10 – Vérifier et tester
- Accédez au site via le navigateur :
http://IP
ouhttp://votre-domaine
- Vérifiez les permaliens, les images, les plugins
- Connectez-vous à l’admin (
/wp-admin
) pour valider
🧼 Étape facultative – Passer en HTTPS
Activez HTTPS avec Let’s Encrypt (certbot) :
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache
⏱️ Résumé : la migration WordPress en 15 minutes
Étape | Durée estimée |
---|---|
Sauvegarde des fichiers | 2 min |
Export base de données | 1 min |
Transfert vers le VPS | 2 min |
Installation du LAMP stack | 3 min |
Restauration des fichiers | 2 min |
Import base & config | 2 min |
Tests finaux | 2-3 min |
✅ Bonus : pour les migrations fréquentes
Vous pouvez automatiser tout cela avec un script Bash ou un playbook Ansible. Pour les agences ou freelances, c’est un vrai gain de temps.
🧠 Conclusion
Pas besoin de plugins coûteux pour migrer un site WordPress. Avec une méthode simple, en ligne de commande, vous gardez le contrôle total sur vos fichiers, votre base de données et votre hébergement. Et surtout : vous apprenez à comprendre votre stack.
Si vous avez apprécié ce guide, pensez à le partager ou à l’ajouter à vos favoris. 😉