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
- 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.
- Téléchargez les fichiers du site par SFTP ou par le gestionnaire de fichiers du panneau. Pour WordPress, le dossier
wp-contentporte tout ce qui vous est propre : thèmes, extensions et médias. - Notez le préfixe des tables, visible dans
wp-config.phpà la ligne$table_prefix. - 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
- Connectez-vous en SSH : voir Se connecter en SSH à un VPS.
- Installez un reverse proxy, Caddy par exemple, sur un réseau Docker nommé
proxy. - Créez la pile WordPress (fichiers
.envetcompose.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 paswp_, ajoutez la variableWORDPRESS_TABLE_PREFIXavec ce préfixe dans la partieenvironmentdu servicewordpress, une variable prévue par la page de l'image officielle, relue le 15 octobre 2026. - 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 :
- Attendez que la base soit prête :
docker compose logs dbdoit afficher une ligne « ready for connections » qui se termine parport: 3306. Au premier démarrage, une ligne semblable avecport: 0apparaît plus tôt : elle vient du serveur provisoire qui prépare la base, ce n'est pas encore le bon moment. - 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 - Copiez vos fichiers dans le conteneur, avec la commande
docker compose cpde la documentation de Docker :docker compose cp ./wp-content/. wordpress:/var/www/html/wp-content/ - 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 - 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.
- Arrêtez la pile :
docker compose down - Supprimez le volume de la base, encore vide de votre site :
docker volume rm wordpress_db - Dans
compose.yaml, remplacez l'image du servicedbparmariadb:11.8. Les variablesMYSQL_ROOT_PASSWORD,MYSQL_DATABASE,MYSQL_USERetMYSQL_PASSWORDrestent valables, d'après la documentation des variables de l'image MariaDB, relue le 15 octobre 2026. - Relancez avec
docker compose up -d, puis attendez dansdocker compose logs dbla ligne « ready for connections » suivie deport: 3306. - Importez avec la commande
mariadb, qui remplacemysqldans 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 :
- Dans le bloc du site du
Caddyfile, ajoutez la lignetls 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. - Rechargez Caddy :
docker compose exec -w /etc/caddy caddy caddy reload, depuis le dossier de Caddy. - Ajoutez au fichier
hostsde votre ordinateur une ligne qui associe votre domaine à l'adresse du VPS. - Ouvrez le site en HTTPS et acceptez l'avertissement de certificat du navigateur, attendu ici.
- Le test fini, retirez la ligne du fichier
hosts, retireztls internalduCaddyfileet 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
- Remplacez l'adresse IP des enregistrements A du domaine et de
wwwpar celle du VPS : voir Pointer un nom de domaine vers son VPS. - Attendez que le reverse proxy obtienne le certificat, puis ouvrez le site en HTTPS.
- 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.
- 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
- Changer d'hébergeur sans coupureChanger d'hébergeur sans couper son site ni perdre de courriels : inventaire, copie, test, bascule DNS, certificat, puis résiliation. L'ordre à suivre.
- Migrer un site WordPress vers un autre hébergeurMigrer un site WordPress : outil d'import de Plesk, extension de migration ou méthode manuelle, puis changement d'adresse et bascule DNS sans couper le site.
- Migrer un site OVH vers un autre hébergeurQuitter un hébergement web OVHcloud : récupérer fichiers et base de données, copier les boîtes mail, décider du sort du domaine, puis basculer sans coupure.