Migrer un site vers un VPS n'a rien de risqué si l'on respecte un ordre précis : tout copier, tout tester sur le nouveau serveur, et ne changer le DNS qu'à la toute fin. Pendant toute la préparation, les visiteurs continuent d'utiliser l'ancien hébergement sans rien remarquer. Cette méthode vaut pour un site PHP, statique ou Node.js ; pour WordPress, notre guide dédié migrer WordPress vers un VPS sans coupure détaille les étapes propres à ce CMS.
1. Le principe
- On installe et on remplit le nouveau serveur en parallèle de l'ancien.
- On le teste en trompant uniquement son propre ordinateur sur l'adresse du site.
- On bascule le DNS quand tout fonctionne, avec un TTL court pour que la bascule soit rapide.
- On garde l'ancien hébergement actif quelques jours, en filet de sécurité.
2. Faire l'inventaire
Avant de toucher à quoi que ce soit, listez ce qui constitue le site :
- Les fichiers : code, médias envoyés par les utilisateurs, fichiers de configuration.
- Les bases de données et leurs identifiants.
- Les tâches planifiées (cron) de l'ancien hébergement.
- La version de PHP ou de Node.js et les extensions utilisées.
- La messagerie : les boîtes mail sont-elles chez l'ancien hébergeur ? Si oui, elles ne déménagent pas avec le site, et les enregistrements MX ne doivent pas bouger.
- La zone DNS complète, exportée ou recopiée.
3. Préparer le DNS, la veille
Abaissez à 300 secondes le TTL des enregistrements A, AAAA et du CNAME de www. Attendez au moins la durée de l'ancien TTL avant de basculer : ainsi, le jour J, tous les visiteurs suivront le changement en cinq minutes. Détails dans configurer les DNS.
4. Préparer le VPS
Installez la même pile logicielle que l'ancien hébergement, dans une version égale ou plus récente et compatible : serveur web, PHP ou Node.js, base de données. Suivez selon le cas Nginx, la pile PHP pour WordPress ou Node.js avec PM2, sans encore demander de certificat : Let's Encrypt ne pourra valider le domaine qu'après la bascule DNS. Sécurisez aussi le serveur dès maintenant : premiers pas et pare-feu.
5. Copier les fichiers et les bases
Les fichiers. Si l'ancien hébergement donne un accès SSH, rsync est l'outil idéal, lancé depuis le VPS :
rsync -avz --progress [email protected]:~/www/ /var/www/monsite.fr/
L'intérêt de rsync : relancé une seconde fois juste avant la bascule, il ne copie que ce qui a changé entre-temps. Sans accès SSH, téléchargez une archive par FTP ou depuis le panneau de l'hébergeur, puis envoyez-la sur le VPS avec scp.
Les bases. Exportez depuis l'ancien hébergement, avec mysqldump en SSH ou l'outil d'export du panneau, puis importez :
mariadb -e "CREATE DATABASE monsite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mariadb monsite < export.sql
Créez l'utilisateur de la base comme décrit dans sécuriser MariaDB, puis reportez les nouveaux identifiants dans la configuration du site. Rétablissez enfin les droits : chown -R www-data:www-data /var/www/monsite.fr.
6. Tester avant la bascule
C'est l'étape qui rend la migration sans risque. Sur votre ordinateur uniquement, faites croire que le domaine pointe déjà vers le VPS, en ajoutant une ligne au fichier hosts :
# Windows : C:\Windows\System32\drivers\etc\hosts (éditeur lancé en administrateur)
# macOS et Linux : /etc/hosts
203.0.113.10 monsite.fr www.monsite.fr
Ouvrez le site dans une fenêtre de navigation privée : vous voyez la version du VPS, alors que le reste du monde voit toujours l'ancienne. Testez tout ce qui compte : pages principales, formulaires, connexion, envoi d'e-mails, paiement en mode test, envoi de fichiers. Le HTTPS n'est pas encore en place : acceptez l'avertissement du navigateur, ou testez en HTTP.
Vérifiez aussi les journaux d'erreurs du serveur pendant vos tests : tail -f /var/log/nginx/error.log.
7. Basculer
- Si le site reçoit des données (commandes, comptes, commentaires), gelez-le : mode maintenance sur l'ancien hébergement.
- Relancez
rsyncet refaites l'export et l'import de la base pour récupérer les dernières données. - Modifiez les enregistrements
AetAAAAvers l'adresse du VPS. Ne touchez pas aux MX. - Supprimez la ligne ajoutée dans votre fichier
hosts. - Dès que
dig +short monsite.frrenvoie la nouvelle adresse, obtenez le certificat :certbot --nginx -d monsite.fr -d www.monsite.fr --redirect.
8. Après la migration
- Gardez l'ancien hébergement actif une à deux semaines : quelques visiteurs aux caches tenaces y arrivent encore, et c'est votre plan de repli.
- Recréez les tâches planifiées relevées dans l'inventaire.
- Mettez en place les sauvegardes dès le premier jour : voir sauvegardes avec Borg.
- Remontez le TTL à une heure ou plus une fois tout stabilisé.
- Surveillez la Search Console les jours suivants : les erreurs d'exploration signalent une page oubliée ou une redirection manquante. Voir indexation Google et sitemap.