Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Migration

Passer d'un hébergement mutualisé à un VPS

Pour migrer un site d'un hébergement mutualisé vers un VPS, on prépare d'abord le serveur : système à jour, serveur web ou Docker, certificat. On récupère ensuite les fichiers et la base de données du site chez l'ancien hébergeur, on les installe sur le VPS, on teste avec une adresse provisoire, puis on modifie le DNS du domaine. L'ancien hébergement reste actif jusqu'à la fin de la propagation, et les boîtes mail se déménagent à part.

Par Jonathan Dewaele · publié le

Avant de commencer : ce qui change

Sur un hébergement mutualisé, l'hébergeur tient le serveur web, PHP, la base de données, le certificat et souvent la messagerie. Sur un VPS, tout cela devient votre affaire. Le guide Hébergement mutualisé ou VPS aide à vérifier que le passage se justifie : un site WordPress seul y gagne rarement, un site qui doit partager le serveur avec d'autres applications davantage.

Trois points à régler avant de toucher au site :

  • La messagerie. Un VPS n'est pas un serveur de mail clés en main. Si vos boîtes sont chez votre hébergeur mutualisé, prévoyez où elles iront avant de modifier le DNS : voir Choisir sa messagerie professionnelle.
  • La façon de servir le site. Ce guide suit la voie des conteneurs : WordPress et sa base dans Docker, derrière un reverse proxy qui gère le HTTPS. C'est la méthode décrite dans WordPress avec Docker Compose.
  • Le TTL du domaine. Baissez-le la veille, la bascule sera plus rapide : voir TTL d'un enregistrement DNS.

1. Récupérer le site chez l'ancien hébergeur

  1. Exportez la base de données au format SQL, depuis phpMyAdmin ou le panneau de votre hébergeur : voir Exporter une base de données MySQL.
  2. Téléchargez les fichiers du site par SFTP ou par le gestionnaire de fichiers du panneau. Pour WordPress, le dossier wp-content porte tout ce qui vous est propre : thèmes, extensions et médias.
  3. Notez le préfixe des tables, visible dans wp-config.php à la ligne $table_prefix.
  4. Rangez la base et les fichiers ensemble, dans un dossier daté sur votre ordinateur.

La démarche générale, quel que soit l'hébergeur, est décrite dans Exporter son site web.

2. Préparer le VPS

  1. Connectez-vous en SSH : voir Se connecter en SSH à un VPS.
  2. Installez un reverse proxy, Caddy par exemple, sur un réseau Docker nommé proxy.
  3. Créez la pile WordPress (fichiers .env et compose.yaml) en suivant WordPress avec Docker Compose, sans lancer l'installation de WordPress dans le navigateur. Si le préfixe relevé plus haut n'est pas wp_, ajoutez la variable WORDPRESS_TABLE_PREFIX avec ce préfixe dans la partie environment du service wordpress, une variable prévue par la page de l'image officielle, relue le 15 octobre 2026.
  4. Démarrez la pile : docker compose up -d.

3. Installer le site sur le VPS

Envoyez d'abord le dossier wp-content et le fichier SQL sur le serveur, par exemple depuis votre ordinateur : scp -r wp-content base.sql admin@adresse-du-serveur:~/wordpress/. Puis, dans le dossier ~/wordpress :

  1. Attendez que la base soit prête : docker compose logs db doit afficher une ligne « ready for connections » qui se termine par port: 3306. Au premier démarrage, une ligne semblable avec port: 0 apparaît plus tôt : elle vient du serveur provisoire qui prépare la base, ce n'est pas encore le bon moment.
  2. Importez la base, avec la commande de restauration de la page de l'image MySQL adaptée à Compose : docker compose exec -T db sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" wordpress' < base.sql
  3. Copiez vos fichiers dans le conteneur, avec la commande docker compose cp de la documentation de Docker : docker compose cp ./wp-content/. wordpress:/var/www/html/wp-content/
  4. Rendez ces fichiers au serveur web. L'image tourne sous l'utilisateur d'identifiant 33 : docker compose exec wordpress chown -R 33:33 /var/www/html/wp-content
  5. Vérifiez que les conteneurs tournent : docker compose ps.

Si l'import s'arrête sur « Unknown collation », la sauvegarde vient d'un serveur MariaDB récent, dont certains interclassements sont inconnus de MySQL 8. La base a déjà été créée par MySQL et MariaDB ne démarre pas sur ses fichiers : il faut repartir d'un volume vide, base.sql restant sur le serveur.

  1. Arrêtez la pile : docker compose down
  2. Supprimez le volume de la base, encore vide de votre site : docker volume rm wordpress_db
  3. Dans compose.yaml, remplacez l'image du service db par mariadb:11.8. Les variables MYSQL_ROOT_PASSWORD, MYSQL_DATABASE, MYSQL_USER et MYSQL_PASSWORD restent valables, d'après la documentation des variables de l'image MariaDB, relue le 15 octobre 2026.
  4. Relancez avec docker compose up -d, puis attendez dans docker compose logs db la ligne « ready for connections » suivie de port: 3306.
  5. Importez avec la commande mariadb, qui remplace mysql dans cette image : docker compose exec -T db sh -c 'exec mariadb -uroot -p"$MYSQL_ROOT_PASSWORD" wordpress' < base.sql

Reprenez ensuite à l'étape 3 ci-dessus.

Ne copiez pas l'ancien wp-config.php : l'image officielle construit le sien à partir des variables de compose.yaml, et les identifiants de l'ancienne base n'y servent plus.

4. Tester avant de basculer

Le domaine pointe encore vers l'ancien hébergement, et Caddy ne peut pas obtenir de certificat public tant que le DNS n'a pas changé. Pour tester quand même :

  1. Dans le bloc du site du Caddyfile, ajoutez la ligne tls internal. D'après la documentation de Caddy sur la directive tls, relue le 15 octobre 2026, Caddy signe alors le certificat avec sa propre autorité locale.
  2. Rechargez Caddy : docker compose exec -w /etc/caddy caddy caddy reload, depuis le dossier de Caddy.
  3. Ajoutez au fichier hosts de votre ordinateur une ligne qui associe votre domaine à l'adresse du VPS.
  4. Ouvrez le site en HTTPS et acceptez l'avertissement de certificat du navigateur, attendu ici.
  5. Le test fini, retirez la ligne du fichier hosts, retirez tls internal du Caddyfile et rechargez Caddy, avant de modifier le DNS.

Si l'ancien site envoyait un en-tête HSTS, le navigateur qui l'a déjà visité refuse le certificat de test sans proposer de passer outre. Testez alors dans une fenêtre privée ou un autre navigateur.

Contrôlez les pages, les images, la connexion à l'administration et les formulaires. Si le domaine change, les adresses enregistrées dans la base doivent être remplacées avec un outil qui respecte les données sérialisées, comme le rappelle la documentation de WordPress sur la migration : voir Changer l'adresse d'un site WordPress.

5. Basculer le domaine

  1. Remplacez l'adresse IP des enregistrements A du domaine et de www par celle du VPS : voir Pointer un nom de domaine vers son VPS.
  2. Attendez que le reverse proxy obtienne le certificat, puis ouvrez le site en HTTPS.
  3. Gardez l'ancien hébergement quelques semaines, le temps de vérifier que rien ne manque et que les courriels arrivent bien à leur nouvelle adresse.
  4. Mettez en place vos propres sauvegardes de la base et des volumes : voir Sauvegarde Docker : conteneurs et volumes.

Sur un VPS Hubspace

Docker et Compose sont installés à la livraison, et le compte admin les utilise sans sudo. Le pare-feu réseau laisse passer les ports 22, 80 et 443, ce qui suffit à un site derrière un reverse proxy. Le serveur est sauvegardé chaque jour, mais le site et WordPress restent à votre charge : le VPS n'est pas managé.

La migration VPS offerte reprend des applications qui tournent déjà dans Docker sur un autre serveur Linux. Un site posé sur un hébergement mutualisé ne relève pas de ce cas. Si vous voulez seulement un site WordPress sans serveur à administrer, la migration vers nos offres d'hébergement WordPress est offerte, elle aussi.

Questions fréquentes

Mon site sera-t-il plus rapide sur un VPS ?

Pas forcément. Un VPS réserve sa mémoire et son disque, mais la vitesse d'un site WordPress dépend surtout de son cache, de ses extensions et de ses images. Un petit VPS mal réglé peut être plus lent qu'un hébergement mutualisé bien tenu.

Faut-il garder l'ancien hébergement après la bascule ?

Oui, quelques semaines. Certains visiteurs arrivent encore sur l'ancien serveur pendant la propagation, et il sert de copie de secours si quelque chose a été oublié.

Puis-je migrer un site qui n'est pas sous WordPress ?

Oui, le principe reste le même : copier les fichiers et la base, installer le langage dont le site a besoin, tester, puis basculer le domaine. Seule la pile change, une image Docker adaptée au langage du site à la place de l'image WordPress.

Articles liés