Transfert de fichiers via SFTP ou SSH (scp)

Introduction

Cet article fait partie de la série de Tuto informatique nommé « Opération Migration«  dont le Sommaire Générale se trouve ici :

[Opération Migration]
ou comment changer de serveur ?

Après avoir préparer notre nouveau Serveur pour qu’il accueil nos sites Web, nous allons voir 2 manières de transférer les fichiers de nos sites de notre « vieux » VPS, vers le nouveau :

    • Soit par FTP dans un premier temps, ce qui implique de devoir copier les fichiers sur notre PC perso puis de les copier à nouveau sur notre nouveau Serveur.
    • Soit par SSH via la commande « scp« , où là on pourra copier directement les fichiers de Serveur à Serveur.

Puis on verra comment modifier le fichier de configuration de WordPress pour qu’il puisse se connecter à la nouvelle base de données.

💡 Avant de commencer c’est l’occasion de faire un petit coup de ménage sur nos sites, pour ne pas à avoir à transférer des fichiers inutiles.
Pour WordPress par exemple supprimer les thèmes et extensions qui ne servent pas ou plus, etc…

Pour info, avant d’écrire ce Tuto, j’utilisais uniquement la méthode de transfert de fichiers par FTP. Mais en cas de déploiement rapide, un transfert de Serveur à Serveur est largement plus rapide. Premièrement les fichiers n’ont pas à transiter par chez nous, et ne sont donc copiés qu’une seul fois, mais en plus si vous avez une connexion un peu lente, ça augmente d’autant plus le temps de transfert…

⚠️ Attention par sécurité : il est toutefois impératif de conserver au moins une copie des fichiers de vos sites Web (et des bases de données) dans un lieu sûr. Donc en tant que particulier ce sera certainement chez vous sur votre PC perso ou un support amovible, ou éventuellement sur un autre serveur. Il est également préférable d’avoir plusieurs copies 😉


Pour les exemples du Tuto  :

On peu bien sûr avoir le même nom d’utilisateur sur les 2 Serveurs, mais pour plus de lisibilité dans les exemples j’ai choisi ceux-ci :

      • Sur le vieux VPS  (source), l’utilisateur correspondant à mon site (blog.mrs.ovh) est : mrs1
      • Sur le nouveau VPS (destination), l’utilisateur correspondant au site (blog.mrs.ovh) est : mrs2

Je considère également que la configuration de SSH est la même sur l’ancien et le nouveau VPS. À vous d’adapter si cela n’est pas le cas 😉


Sommaire


Transfert de fichiers par FTP

FileZilla

FileZilla est un logiciel gratuit et Open Source de transfert de fichiers par FTP. Il est disponible autant sous Linux, que Windows ou Mac, et c’est lui que nous allons utiliser dans ce Tuto 🙂


⚠️ Nous utiliserons le protocole SFTP qui est plus sécurisé que FTP.
Le port par défaut de FTP est 21. Tandis que SFTP utilise le port de SSH, soit 22 par défaut, ou celui que nous avons personnalisé précédemment lors de la configuration de SSH.

⚠️ Si vous avez bien suivi ce Tuto et ajouté la ligne « AllowUsers » lors de la configuration de SSH, alors il faut y ajouter l’utilisateur correspondant à notre sites.
💡 Mais pour évitez de vous replonger dans le Tuto précédent, voici comment le faire autrement via Webmin :

    • Depuis la partie « Webmin » aller dans « Serveurs » >> « Serveur SSH« 
    • Cliquer sur « Contrôle d’accès« 
    • Et dans « Autoriser seulement les utilisateurs » ajouter l’utilisateur en question (si il n’y est pas déjà).
    • « Sauvegarder« 
    • Puis cliquer sur le bouton « Appliquer les changements« .

Maintenant que l’on est prêt : ouvrir FileZilla

FileZilla

      1. Dans cette partie il est possible d’établir une connexion rapide en indiquant l’hôte (IP du serveur) l’identifiant, passe, port.
        (mais ici les informations ne seront pas sauvegardé lorsque vous fermerez le logiciel !)
      2. En cliquant sur le bouton « Gestionnaire de Sites » on peu enregistrer nos sites, pour ne pas à avoir à retaper les infos de connexion à chaque fois. En appuyant sur le bouton cela ouvre la fenêtre suivante (3) :
      3.  « Gestionnaire de Sites »
        • Cliquer sur « Nouveau Site »
        • Indiquez-lui un nom dans la colonne de gauche
        • Sur la partie de droite (onglet Général) on indique l’hôte (IP du VPS)
        • Le port que l’on a configuré pour SSH
        • Protocole : SFTP – SSH File Transfert Protocol
        • Type d’authentification : Normal
        • Identifiant …
        • Mot de passe …

💡 Choisir des couleurs de fonds différentes pour chaque site, et chaque serveur, pour mieux se repérer et éviter les erreurs 😉

⚠️ Si la connexion ne fonctionne pas revérifier les infos de connexion (passe, identifiant), la bonne configuration de SSH (user ajouté à la ligne « AllowUsers », port personnalisé), ne pas confondre les infos de l’ancien et du nouveau Serveur, etc…


FileZilla

Lors de la toute première connexion au Serveur vous aurez ce message. Cocher la case et Valider.


FileZilla

À gauche c’est votre PC, et à droite c’est le Serveur auquel on est connecté.


FileZilla

    • Sur la gauche on se place à l’endroit où l’on veut copier les fichiers de notre site.
    • Sur la droite on sélectionne les dossiers et fichiers de notre site Web (contenu dans « public-html » ici)
    • Puis faire glisser la sélection de la colonne de droite, à la colonne de gauche pour y copier les documents du Serveur vers notre PC…

FileZilla

Les fichiers commencent alors à se copier.
On les voit sur la partie du bas…


FileZilla

Quand tout les fichiers sont copiés, on peu mettre fin à la connexion en cliquant sur le petit bouton indiqué sur l’image.


Ensuite on fait l’opération inverse en se connectant sur le nouveau Serveur : on sélectionne les fichiers sur notre PC, et on les fait glisser dans le bon dossier de destination sur le nouveau Serveur…


⚠️ Et enfin ne pas oublier de « Modifier le fichier de configuration WordPress » (en bas d’article)


La commande scp

Seconde méthode : pour copier les fichiers de Serveur à Serveur on va utiliser la commande « scp« . Voici comment elle fonctionne en étant connecté à partir du Serveur source (notre vieux VPS quoi) :

scp -r -p chemin/vers/dossier/source user@serveur2:chemin/vers/dossier/destination
    • L’option « -r » indique la récursivité
    • L’option « -p » préserve les dates de modification, d’accès, et les modes des anciens fichiers.
    • Si l’on a modifié le port d’écoute de SSH (comme dans ce tuto précédent) alors il faut également ajouter l’option « -P » suivi du port choisi lors de la configuration, ce qui donne par exemple :
scp -r -p -P 2222 chemin/vers/dossier/source user@serveur2:chemin/vers/dossier/destination

Trouver le chemin

💡 Il est possible de simplement voir le chemin depuis le « Gestionnaire de fichiers » de Webmin/Virtualmin 🙂
Mais on va voir ici comment se promener depuis notre Terminal dans les dossiers de notre Serveur :

On va d’abord repérer notre dossier source. Depuis une connexion SSH sur notre vieux VPS…
Avec la commande « ls » nous allons voir le contenu des dossiers :

ls /home

Ce qui affiche les dossiers des différents utilisateurs du Serveur contenu dans le /home. Ce qui affiche par exemple :

debian  gta69-1  mrs-1  tux

Puis on continu avec l’utilisateur correspondant à notre site :

ls /home/mrs-1

Là on devrais voir le dossier « public_html » qui contient les fichiers du site. Et éventuellement le dossier « domains » qui contiens nos différents sous-domaines, et qui contiennent à leur tour chacun un dossier « public_html« .

Chemins Source :

Dans notre exemple pour mon Blog (https://blog.mrs.ovh) les chemins sources sont donc :

      • /home/mrs-1/public_html
      • /home/mrs-1/domains/blog.mrs.ovh/public_html

Chemins de Destination :

Ensuite on se connecte sur le nouveau VPS, et on repère également les chemins des dossiers de destination… (il faut bien entendu avoir déjà créé nos sites dans Virtualmin pour que le dossier soit créé !)

Chez moi cela donne :

      • /home/mrs-2
      • /home/mrs-2/domains/blog.mrs.ovh

⚠️  Le dossier « public_html » source sera copié à cet emplacement. Attention donc à ne pas mettre « public_html » à la fin du chemin de destination, sinon cela copiera le dossier « public_html » dans un autre dossier « public_html » !


Copie des fichiers avec scp

Maintenant que l’on a bien définie nos chemins : Sources et Destinations, on peu passer au transfert des documents via SSH avec la commande « scp« …


⚠️ Comme on l’a vu précédemment, nous avons interdit la connexion root par SSH sur notre nouveau VPS : il faut donc utiliser l’utilisateur correspondant au site (celui créer lors de l’Ajout du domaine dans Virtualmin 💡)

Si vous avez suivi le Tuto précédent et ajouté la ligne « AllowUsers » dans le fichier de configuration de SSH, alors il faut également autoriser les utilisateurs de nos sites dans ces paramètres de SSH.
💡 Pour évitez de vous replonger dans le Tuto précédent, voici comment faire via Webmin :

    • Depuis la partie « Webmin » aller dans « Serveurs » >> « Serveur SSH« 
    • Cliquer sur « Contrôle d’accès« 
    • Et dans « Autoriser seulement les utilisateurs » ajouter l’utilisateur en question, si il n’y est pas déjà.
    • « Sauvegarder« 
    • Puis cliquer sur le bouton « Appliquer les changements« .

Bon cette fois on est vraiment prêt 🙂

    • Se connecter par SSH au Serveur Source (le vieux VPS)
    • Basculer sur l’utilisateur « root » en tapant « su –« 
    • Et enfin on tape la commande « scp » adapter à notre configuration
      En reprenant les exemples précédents ça donne ceci :
scp -r -p -P 2222 /home/mrs-1/public_html mrs-2@xx.xx.xx.xx:/home/mrs-2

⚠️ Pour rappel : il ne faut pas mettre « public_html » à la fin du chemin de destination ! Car sinon cela va copier le dossier « public_html » d’origine dans un nouveau dossier « public_html » :-/

Le transfert des fichiers peu être extrêmement long selon la taille, et le nombre de fichiers, de votre site…

⚠️ En cas d’erreur(s)

    • Si la connexion ne fonctionne pas, essayer juste de vous connecter par SSH au serveur avec ce même utilisateur pour vérifier que la connexion est correcte.
      Exemple :
ssh mrs-2@xx.xx.xx.xx -p 2222
    • Revérifier si vous ne vous êtes pas trompé dans vos login et mot de passe (en ayant mélangé ceux des 2 serveurs par exemple !?)
    • Si vous avez un message d’erreur sur un manque d’espace disque, vérifier d’avoir attribué assez d’espace disque au site de destination !
      Voir : « Éditer un serveur (espace disque) »
    • Reprendre le Tuto du début et vérifier chaque partie…
    • La moindre petite faute de frappe dans la commande fera qu’elle ne fonctionnera pas, ou copiera les fichiers à un autre endroit…

Modifier le fichier de configuration WordPress

Puisque nous sommes sur un nouveau Serveur il va falloir modifier les fichiers de configuration de nos applications Web (WordPress, Forum, etc…) en indiquant les nouveaux éléments : login et mot de passe de la BDD, chemin du répertoire du site, etc…
Dans mon cas il n’y a que WordPress (j’ai abandonné le Forum et la WebGalerie depuis un moment).

Le fichier de configuration de WordPress est situé à la racine du site et ce nomme « wp-config.php« .

Nous allons voir ici comment modifier ce fichier « wp-config.php » (ou tout autre fichier) directement depuis le « Gestionnaire de fichiers » de Webmin (mais on pourrait aussi bien le faire depuis notre Terminal, ou le faire depuis notre PC perso via un éditeur de texte (comme le bloc note de windows)  et ensuite transférer le fichier par FTP)

    • On se connecte donc à Webmin sur notre nouveau VPS.

Gestionnaire de fichiers Webmin

    • Dans la partie « Virtualmin » sélectionner notre domaine
    • Et cliquer sur « Gestionnaire de fichiers« 
    • Chercher le fichier « wp-config.php »
      (Si vous ne le voyez pas regardez en bas à droite : il peu y avoir plusieurs pages)

webmin - gestionnaire de fichiers

    • Cliquer sur les trois petit points à côté du fichier « wp-config.php« 

Gestionnaire de fichiers Webmin

    • Dans le menu cliquer sur « Édition« 

Gestionnaire de fichiers Webmin

    • Modifier les lignes suivantes selon votre nouvelle configuration :
      • define(‘DB_NAME’…
      • define(‘DB_USER’…
      • define(‘DB_PASSWORD’…
    • 💡 Pour rappel vous pouvez voir le mot de passe de votre base de données ici.
    • Puis cliquer sur la petite disquette pour sauvegarder les modifications.

Dans le cadre de notre « Opération Migration » on peu maintenant enchaîner directement sur le Tuto suivant avec le Transfert des BDD depuis Webmin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *