Dans cet article, nous allons voir comment exporter et importer un site WordPress en utilisant uniquement le terminal de ligne de commande, tel qu'on le trouve sur Linux ou Mac. Via le SSH, nous allons nous connecter au premier serveur et préparer les fichiers. Ensuite, nous les importerons sur le nouveau serveur. Mais avant cela, une question…
Quel est intérêt d'utiliser le terminal pour transférer un site WordPress ?
Premièrement, cela vous permet de gagner du temps. En effet, si vous deviez transférer vos fichiers via le FTP (avec Filezilla par exemple), cela vous prendrait un temps considérable. Vous devriez d'abord télécharger tous vos fichiers de votre serveur vers votre ordinateur. Ensuite, de votre ordinateur vers votre nouveau serveur. Si vous avez beaucoup de plugins, de fichiers images, etc., cela peut vous prendre des heures. Avec le terminal Linux ou Mac, c'est une affaire de minutes.
Deuxièmement, cela permet de contourner certaines limites. Lorsque vous importez une base de données depuis PHPMyAdmin, votre fichier est limité en taille. Cela varie selon les hébergeurs, mais c'est un vrai souci. Si vous devez saucissonner votre base ou l'importer table par table, c'est encore une fois une vraie galère. Et parfois, même si la taille est respectée, phpMyAdmin plante quoi qu'il en soit (il "time out" comme on dit dans le jargon).
Plus votre site est important et volumineux, plus le gain de passer par le SSH est grand ! Voyons maintenant, comment faire, concrètement.
NB : Je pars du principe que votre serveur est configuré pour accueillir WordPress et me concentre uniquement sur les lignes de commande à entrer dans le terminal. Si des points restent flous, n'hésitez pas néanmoins à me poser la question en commentaire.
1. Exporter les fichiers de WordPress
Se connecter au serveur via SSH (Secure Shell)
La première chose à faire, c'est de se connecter via ssh au serveur. Typiquement, vous allez le faire avec une commande du type :
Naviguer jusqu'aux fichiers de WordPress
Ensuite, il faut naviguer vers là où se trouve les dossiers de l'installation. Par exemple :
Compresser les fichiers depuis le dossier src
Nous allons compresser les fichiers depuis un dossier src
(au même niveau que public_html
), pour ne pas exposer l'archive. Donc revenons un pas en arrière :
Et de là, lançons la compression des fichiers :
Cela va créer le fichier export.tar.gz
. Vous pouvez le voir en tapant la commande ls -hartl
(avec l'argument pour avoir toutes les données le concernant).
2. Exporter la base de données MySQL
Nous allons maintenant exporter la base de données. Pour cela, nous allons créer un dumpfile, de cette manière :
Souvenez-vous que vous pouvez trouver les éléments de l'utilisateur de la base de données (utilisateur_bdd
) et le nom de la base de données elle-même (nom_bdd
) dans le fichier wp-config.php de votre installation de WordPress.
Si vous rencontrez une erreur mentionnant l'impossibilité d'utiliser des tablespaces, vous pouvez modifier votre commande ainsi :
Si vous utilisez un hébergement WordPress mutualisé chez IONOS, vous pouvez vous référer à cette page pour trouver la commande exacte à exécuter.
Une fois que vous avez exécuté cette commande, vous pouvez faire ls
si le cœur vous en dit pour voir que votre fichier export_bdd.sql
a bien été créé.
3. Protéger les fichiers d'export par mot de passe avec gpg
Maintenant, nous créer un dossier dans lequel nous allons déplacer nos deux fichiers d'export (l'archive et le dump MySQL). Puis nous allons compresser ce fichier, et l'encrypter pour le protéger.
Déplacer les fichiers dans un nouveau dossier
On commencer par créer un dossier avec la commande :
Puis on y déplace les fichiers à exporter :
Compresser les fichiers
On remet une couche de compression en compressant ce dossier :
Protéger le fichier avec un mot de passe
Pour cela, on va utiliser gpg :
Une invite va vous demander d'entrer un mot de passe, puis de le confirmer. Veillez à choisir un mot de passe complexe, une longue clef de chiffres et lettres, par exemple. Un nouveau fichier encrypté est créé : export_site.tar.gz.gpg
Effacez le fichier non encrypté, dont vous n'avez plus besoin :
Arrivé à ce stade, votre fichier d'export est prêt !
Placer le fichier d'export dans un dossier public
Nous allons placer le fichier encrypté dans un dossier public de WordPress le temps de faire le transfert. Par exemple, wp-content/temp/
.
Commencez par créer le dossier :
Déplacez-y votre fichier encrypté :
Attention, une fois que vous aurez transféré le fichier, vous effacerez ce fichier. Veillez également à avoir créé un mot de passe réellement complexe.
(Dans l'absolu, il serait mieux de télécharger le fichier depuis votre nouveau serveur avec la commande scp [email protected]:/var/www/example.com/src/export_site.tar.gz.gpg ../home/bob
par exemple. Mais si votre serveur est sécurisé, il y a des chances pour que ce ne soit pas possible [enfin, pas sans toucher aux permissions et réglages du serveur].)
4. Importer les fichiers depuis le nouveau serveur
Se connecter au serveur via SSH
Connectez-vous à votre nouveau serveur via SSH en utilisant le terminal de ligne de commande. Par exemple :
Importer le fichier d'export
Télécharger le fichier en exécutant la commande :
Cela va importer votre fichier encrypté. Une fois que c'est fait, rendez-vous sur votre premier serveur, pour le supprimer : rm ../public_html/wp-content/temp/export_site.tar.gz.gpg
Déplacer le fichier encrypté dans le dossier src
Nous allons déplacer le fichier vers le dossier suivant :
Puis rendez-vous dans ce dossier :
Décompresser les fichiers encryptés
Commencez par décrypter votre fichier avec cette commande :
Entrez votre mot de passe pour accéder à l'archive, qui se nomme export_site.tar.gz
. Décompressez cette dernière avec cette commande :
Vous avez maintenant votre dossier avec vos deux fichiers d'export ! Il ne reste plus qu'à importer la base de données MySQL et placer les fichiers de WordPress dans le dossier public de votre serveur.
Importer la base de données
Si vous avez créé votre base de données (par exemple dans l'interface d'administration de votre compte IONOS 1&1), vous avez déjà le nom, l'utilisateur et le mot de passe de votre nouvelle base. Si ce n'est pas le cas et que vous créez vous-même votre base, vous pouvez suivre au préalable les étapes décrites sur cette page. Notez aussi que les hébergements mutualisés peuvent limiter l'accès aux tables et requérir des commandes un peu modifiées. Par exemple, chez IONOS 1&1.
Ici, nous allons simplement procéder à l'import des tables que vous avez exportées un peu plus tôt :
Si tout se passe bien, vous ne devriez pas voir de message d'erreur. Optionnellement, vous pouvez jeter un œil à vos tables avec ces commandes :
Cela vous permettra de voir les tables de votre base de données.
Décompresser les fichiers de WordPress
Rendons-nous maintenant dans le dossier qui contient les fichiers compressés de WordPress, ainsi que l'export de la base de données :
Puis décompressez les fichiers de WordPress :
Déplacer les fichiers de WordPress dans le répertoire public
Dans le cas présent, je suppose que le dossier public_html
existe déjà sur le nouveau serveur. On déplace donc le contenu de l'ancien vers celui-ci :
Tous vos fichiers sont désormais en place. Il ne vous reste plus qu'à modifier le fichier wp-config.php
pour qu'il communique avec la nouvelle base de données. En théorie, à ce moment-là, vous pourrez vérifier avec le domaine système que tout fonctionne bien, puis faire les changements requis au niveau de votre hébergeur pour faire pointer le nom de domaine vers votre nouveau serveur.
Laisser un commentaire