On ne présente plus le CMS Wordpress, avec tous ses avantages et ses tous ces défauts. Reste que je l'utilise, autant documenter cette pratique…
WP utilise une DB MariaDB/MySQL, qu'il faut donc exporter et importer. De plus, WP encode en dur l'URL du site/blog dans la base de donnée, il faut donc modifier le dump.sql pour suivre la nouvelle installation, si le nom de domaine change, par exemple.
Un bon rsync
peut très bien faire l'affaire, par exemple ici depuis le serveur hébergeant le WP vers une machine en local, pour autant que celle-ci soit équipée d'un serveur SSH :
rsync -avzh --progress /var/www/[wordpress]/ [user]@[IP-machine-locale]:/chemin/de/destination/
Sur la machine hébergeant le Wordpress, on peut exporter la DB avec mysqldump
:
mysqldump -u root -p [db-name] > [nom-de-fichier].sql
Une fois le [nom-de-fichier].sql
est déplacé sur la machine locale (par exemple), on peut faire la modification de la chaîne de caractère avec sed
, puisque le dump SQL est en réalité du texte. Ici on n'a besoin que de changer le [nom-de-domaine]]
par localhost
:
sed -ie "s/[nom-de-domaine]/localhost/g" [nom-de-fichier].sql
Pour importer la DB, il y a plusieurs solutions. Soit avec mysqldump
:
mysqldump -u root -p [nom-de-la-db] < [nom-de-fichier].sql
Soit en se connectant à mysql
:
mysql -u root -p mysql > USE [nom-de-la-db]; mysql > SOURCE /chemin/vers/[nom-de-fichier].sql;
Si il y a eu des changements au niveau de l'utilisateur et du mot de passe pour se connecter à la DB sur la machine de destination, il faut modifier [wordpress]/wp-config.php
en conséquence :
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** // /** Nom de la base de données de WordPress. */ define('DB_NAME', '[nom-de-la-DB]'); /** Utilisateur de la base de données MySQL. */ define('DB_USER', '[utilisateur-de-la-DB]'); /** Mot de passe de la base de données MySQL. */ define('DB_PASSWORD', '[password]'); /** Adresse de l'hébergement MySQL. */ define('DB_HOST', 'localhost');
Il ne reste plus qu'à s'assurer que les droits sur /var/www/[wordpress] soient corrects et qu'Apache soit correctement configuré.