Sommaire
[Très bon tuto ici :
https://blog.mrs.ovh/2020/09/operation-migration-ou-comment-changer-de-serveur/#sommaire]
Une fois le VPS installé, on défini le mot de passe root sur la plateforme hostinger
Première connexion SSH
Sur hostinger, (contrairement à OVH) , il n’y a pas un utilisateur ‘debian’ crée par défaut, il faut donc pour la première connexion ssh le faire en root:
ssh root@IP_serveur
Une fois connecté sur le serveur, on fait une mise à jour et on redémarre le serveur :
apt update
apt upgrade
reboot
Pour d’éviter de se connecter en ssh avec root (déconseillé pour la sécurité), on crée un utilisateur ‘standard’ (sans droits root) :
adduser toto
on se déconnecte, et on se reconnecte en ssh avec cette fois l’utilisateur toto :exit
ssh toto@IP_serveur
Une fois connecté, on peut si besoin basculer sur l’utilisateur root : su -
Configuration du serveur SSH
La configuration se fait dans le fichier /etc/ssh/sshd_config :nano /etc/ssh/sshd_config
– Modifier le port par défaut : rechercher la ligne #Port 22, la décommenter et modifier le n° de port (entre 1024 et 65536)
Remarque : Il faut s’assurer que le port sélectionné n’est pas utilisé pour d’autres services. On peut le faire en utilisant la liste de ports suivante fournie par l’Internet Assigned Numbers Authority (IANA) : https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
On peut également voir la liste des ports utilisés dans le fichier /etc/services : cat /etc/services
– Interdire la connexion en root : en bas du fichier remplacer PermitRootLogin yes par PermitRootLogin no
– On peut aussi restreindre les utilisateurs ayant le droit de se connecter via SSH : ajouter à la fin du fichier :
AllowUsers toto1 toto2 : seuls les utilisateurs toto1 et toto2 auront un accès au serveur via SSH
Une fois les modifications effectuées, on redémarre le service SSH : /etc/init.d/ssh restart
On se déconnecte et on se reconnecte avec la commande ssh toto@IP_serveur -p NouveauPortSSH
pour vérifier que tout est OK ; il est plus sur de se reconnecter à partir d’une nouvelle console (sans fermer la première) au cas ou on aurait perdu notre accès SSH suite aux modifications du fichier de config
Installation Virtualmin
Important : l’installation de Virtualmin doit se faire sur une machine ‘propre’ (juste après l’installation de l’OS)
On installe la version gratuite de virtualmin (GPG) :wget https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh
sh virtualmin-install.sh
(On choisi les paramètres par défaut : LAMP)
Une fois l’installation terminée, on à accès à l’interface web de virtualmin en se rendant à l’adresse https://IP_serveur:10000
On obtient une alerte de sécurité lors de la première connexion, c’est normal
On s’identifie ensuite avec l’identifiant root du serveur et son mot de passe
Post-Installation Virtualmin
On laisse les paramètres par défaut, sauf pour les étapes suivantes :

Ici, on entre un mot de passe root pour l’accès à MariaDB

On obtient ici un warning pour la résolution DNS du serveur, on coche pour l’instant « Skip check for resolvability » et on continue

Ici choisir l’option « Huge » (celle recommandée)
Augmenter la sécurité
Créer un nouvel utilisateur
Pour l’instant, le login pour avoir accès à l’interface Webmin/Virtualmin est ‘root’ (pas top pour la sécurité)
on va créer un nouvel utilisateur qui aura tous les droits, et supprimer ensuite l’utilisateur root de Webmin/Virtualmin
Choisir l’onglet ‘Webmin’ puis choisir Webmin –> Webmin users
Sur la fenêtre qui s’affiche, cliquer sur ‘root’
Cliquer ensuite sur ‘Clone’
On choisi ensuite un nom d’utilisateur et un mot de passe puis on clique sur ‘Create’
On se déconnecte puis on se reconnecte avec notre nouvel utilisateur fraîchement crée
On se rend à nouveau sur l’onglet ‘Webmin’ puis dans le menu Webmin –> Webmin users
On clique sur l’utilisateur ‘root’ et on clique sur ‘Delete’
Modifier le port de connexion à l’interface
Le port est pour l’instant 10000 (port par défaut) ; on va en choisir un autre
Choisir l’onglet ‘Webmin’ puis choisir Webmin –> Webmin Configuration
Cliquer sur l’icone ‘Ports and Addresses’ et modifier le port (2 champs à modifier avec le nouveau port)
Importer un site web installé sur un autre serveur
Création d’un nouveau ‘serveur’ (pour virtualmin, un ‘serveur’ correspond à un nom de domaine)
Onglet Virtualmin –> Create Virtual Server
Domain Name : c’est le nom de domaine de notre site web : monsite.xyz
Administration username : l’administrateur de ce ‘serveur’ (si on coche ‘automatic’, ce nom sera par défaut celui du domaine, c’est à dire monsite)
Administration password : son mot de passe
Puis cliquer sur ‘Create Server’
(La base de données est crée automatiquement et son nom est monsite)
On peut vérifier que tout est OK en cliquant sur le menu ‘Virtual Server Summary’
Importation de la base de donnée du site depuis le serveur source
On se connecte en SSH au serveur source (celui qui contient le site web)
On génère le fichier .sql que l’on veut transférer :mysqldump -u DB_user -p DB_name > /home/srv-source-user/DB_backup.sql
On transfère ensuite ce fichier vers notre serveur de destination virtualmin :scp -P portSSH /home/
srv-source-user
/DB_backup.sql toto@IP_serveur:/home/toto/
Important : ne pas oublier d’ajouter les utilisateurs des ‘Virtual Servers’ dans le fichier /etc/ssh/sshd_config dans les AllowUsers : ici, il faudra avant de lancer la commande scp éditer le fichier /etc/ssh/sshd_config et ajouter toto dans les AllowUsers : AllowUsers user1,user2,…,toto
Remarque : Cela peut se faire directement depuis Virtualmin : Onglet Webmin – Servers – SSH Server – Acces Control
On peut vérifier que le transfert s’est bien déroulé en accédant au File Manager de Virtualmin
Une fois la base de données copiée sur notre serveur virtualmin, il faut l’importer dans la base vierge toto :
Depuis Virtualmin, menu ‘Edit Databases’, cocher la base toto et cliquer sur ‘manage‘ (petit bouton à droite)
On clique ensuite sur ‘Execute SQL’ puis on choisi l’onglet ‘Run SQL from file’
On choisi ‘From local file’ et on clique sur l’icone ‘dossiers’ à droite pour aller chercher le fichier .sql que l’on vient de transférer
On clique enfin sur ‘Execute’
Voila, la base de données de notre site est importée sur le nouveau serveur
Importation du dossier qui contient le site depuis le serveur source
Il s’agit ici de copier tous les fichiers du dossier qui contient le site (situé sur l’ancien serveur) dans le dossier /home/toto/public_html du nouveau serveur:scp -r -P portSSH /var/www/monsite/* toto@IP_serveur:/home/toto/public_html
Une fois le dossier monsite copié, il faut modifier le fichier wp-config.php pour lui indiquer les bons paramètres de la base de donnée :
On peut le faire depuis Virtualmin (menu ‘File Manager’) : repérer le fichier et cliquer sur les 3 petits points verticaux à coté pour l’éditer (sinon en console nano /home/toto/public_html/wp-config.php) ; voici les 3 paramètres à modifier :

Il reste une dernière chose à faire : le nom de domaine de monsite est toujours associé à l’IP de l’ancien serveur : Il faut donc aller sur la plateforme de l’hébergeur qui gère le nom de domaine de monsite et remplacer dans la zone DNS l’IP de l’ancien serveur par l’IP du nouveau
Voir ici : https://www.rezonimo.xyz/index.php/2023/09/10/vps-debian-nom-de-domaine/
Avertissements WordPress : Quelques modules à ajouter …
Lorsqu’on se connecte en admin sur le site que l’on vient de transférer sur le serveur Virtualmin, WordPress affiche des avertissement sur l’état de santé du site :

Lors de l’installation de Virtualmin, le LAMP à été installé automatiquement, il faut ajouter quelques modules php supplémentaires pour le bon fonctionnement de WordPress :apt update
apt install php-{curl,gd,intl,zip,imagick}
service apache2 restart
En cas de soucis : désinstallation de Virtualmin
Pour une désinstallation totale de virtualmin :sh virtualmin-install.sh --uninstall