Aller au contenu
Patrick Junod Patrick Junod

Migrer un site WordPress via SSH

Lorsqu'il s'agit de migrer un site WordPress d'un serveur à un autre, l'utilisation de SSH offre une méthode professionnelle, rapide et sécurisée. Dans ce guide, je vous explique étape par étape comment effectuer cette migration en utilisant les outils en ligne de commande.
WordPress

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un accès SSH aux deux serveurs (source et destination)

  • Les identifiants de base de données des deux environnements

  • Des droits suffisants pour exécuter les commandes nécessaires

  • Un client SSH installé sur votre machine locale

Vue d'ensemble du processus

La migration d'un site WordPress via SSH se déroule en plusieurs étapes :

  1. Sauvegarde de la base de données

  2. Compression des fichiers du site

  3. Transfert des données vers le nouveau serveur

  4. Importation de la base de données

  5. Extraction et positionnement des fichiers

Étape 1 : Sauvegarde de la base de données

La première étape consiste à créer une sauvegarde complète de votre base de données WordPress. Connectez-vous en SSH à votre serveur source et exécutez :

mysqldump -u nom_utilisateur_db -p nom_base_donnees > sauvegarde_bdd.sql

Décomposition de la commande :

  • mysqldump : utilitaire permettant d'exporter une base de données MySQL

  • -u nom_utilisateur_db : spécifie l'utilisateur de la base de données

  • -p : demande le mot de passe de manière interactive (plus sécurisé)

  • nom_base_donnees : le nom de votre base de données WordPress

  • > sauvegarde_bdd.sql : redirige la sortie vers un fichier SQL

Lorsque vous exécutez cette commande, le système vous demandera le mot de passe de la base de données. Saisissez-le et appuyez sur Entrée.

Étape 2 : Compression des fichiers

Une fois la base de données sauvegardée, il faut archiver tous les fichiers de votre site WordPress :

tar -czf wordpress_files.tar.gz ~/chemin/vers/site

Explication des options :

  • tar : outil d'archivage

  • -c : crée une nouvelle archive

  • -z : compresse l'archive avec gzip

  • -f wordpress_files.tar.gz : nom du fichier archive à créer

  • ~/chemin/vers/site : répertoire contenant votre site WordPress

Cette commande crée une archive compressée contenant tous vos fichiers WordPress, ce qui facilite le transfert et réduit la bande passante utilisée.

Étape 3 : Transfert vers le nouveau serveur

Maintenant que vous avez vos deux fichiers (base de données et fichiers du site), transférez-les vers le serveur de destination avec SCP (Secure Copy Protocol) :

scp wordpress_files.tar.gz sauvegarde_bdd.sql utilisateur@serveur-destination.com:~/

Détails de la commande :

  • scp : commande de copie sécurisée via SSH

  • Les deux premiers arguments sont les fichiers à transférer

  • utilisateur@serveur-destination.com:~/ : destination (utilisateur, serveur, et répertoire cible)

Cette opération peut prendre quelques minutes selon la taille de votre site et la vitesse de votre connexion.

Étape 4 : Importation de la base de données

Connectez-vous maintenant au serveur de destination via SSH et importez la base de données :

mysql --verbose -u utilisateur_db -p nom_base_donnees -h hote_mysql.com < sauvegarde_bdd.sql

Analyse de la commande :

  • mysql : client en ligne de commande MySQL

  • --verbose : affiche les requêtes pendant l'importation (utile pour suivre la progression)

  • -u utilisateur_db : utilisateur de la base de données sur le nouveau serveur

  • -p : demande le mot de passe de manière interactive

  • nom_base_donnees : nom de la base de données de destination

  • -h hote_mysql.com : adresse du serveur MySQL (nécessaire si MySQL n'est pas en local)

  • < sauvegarde_bdd.sql : lit le fichier SQL et l'importe

Étape 5 : Extraction et positionnement des fichiers

L'étape finale consiste à extraire l'archive et à placer les fichiers au bon endroit :

tar -xzf wordpress_files.tar.gz -C ~/destination

Options utilisées :

  • -x : extrait les fichiers

  • -z : décompresse l'archive gzip

  • -f wordpress_files.tar.gz : fichier à extraire

  • -C ~/destination : répertoire de destination

Si votre archive contient une structure de répertoires imbriquée, vous devrez peut-être déplacer les fichiers :

mv ~/chemin/source/{*,.*} ~/sites/nouveau-site.com/ 2>/dev/null

Cette commande déplace tous les fichiers (y compris les fichiers cachés commençant par .) vers le répertoire final. Le 2>/dev/null supprime les messages d'erreur pour les éléments spéciaux comme . et ...

Configuration post-migration

Une fois les fichiers et la base de données en place, n'oubliez pas de :

  1. Mettre à jour wp-config.php avec les nouvelles informations de connexion à la base de données

  2. Modifier les URLs dans la base de données si le nom de domaine a changé (utilisez Search-Replace-DB ou WP-CLI)

  3. Vérifier les permissions des fichiers (généralement 644 pour les fichiers et 755 pour les dossiers)

  4. Tester le site pour vous assurer que tout fonctionne correctement

  5. Régénérer les permaliens via le tableau de bord WordPress

Bonnes pratiques de sécurité

Quelques recommandations importantes :

  • Supprimer les fichiers de sauvegarde une fois la migration terminée

  • Utiliser des connexions SSH sécurisées avec authentification par clé si possible

  • Vérifier les permissions après extraction pour éviter les problèmes de sécurité

  • Faire un backup du serveur de destination avant d'écraser des données existantes

Debug

Erreurs d'importation MySQL : Si vous rencontrez des erreurs lors de l'importation, vérifiez que la version de MySQL/MariaDB est compatible et que la taille maximale des paquets est suffisante.

Problèmes de permissions : Assurez-vous que l'utilisateur SSH a les droits nécessaires pour écrire dans les répertoires de destination.

Site inaccessible après migration : Vérifiez votre fichier wp-config.php et les URLs dans la table wp_options de votre base de données.