Cloner un site WordPress sur un nouveau VPS en 15 minutes (sans plugin payant)


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 ou http://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. 😉