Pour diverses raisons on peut être amené à vouloir migrer notre site web wordpress d’un serveur à un autre. Cet article détail les différentes étapes de la migration.
Prés requis
Afin d’effectuer la migration il vous faudra un environnement adapté et configuré, ces dernier sont identique a une nouvelle installation:
Nous recommandons des serveurs utilisant
une version 7.4 ou supérieure de PHP
et MySQL version 5.6
OU MariaDB version 10.1 ou supérieure.
Nous recommandons également Apache
OU Nginx comme options les plus robustes pour exécuter WordPress, mais ni l’une ni l’autre n’est obligatoire.
Sauvegarde du site
La sauvegarde de votre site se fait en deux étapes
Sauvegarde des différents fichiers de votre site
Plusieurs solutions s’offrent à vous, soit utilisé un plug-in wordpress, soit sauvegardé les fichiers en ligne de commande ou à distance en ftp/sftp avec FileZilla par exemple.
Via scp, le nouveau serveur a pour IP 192.168.1.2. Excecuté la commande suivant depuis l’ancien server.
# scp -r /var/www/mon_super_site root@192.168.1.2:/var/tmp/
Puis sur le nouveau serveur
# mv /var/tmp/mon_super_site /var/www
Puis pour corrigé les droits sur les fichiers:
# chown -R www-data:www-data /var/www
Sauvegarde de la base de donnée
Dans notre cas nous traiterons uniquement l’export de celle-ci en ligne de commande
Commençons par rassembler les informations dont nous auront besoin, à savoir:
Le nom de la base de données
Le nom d’utilisateur de cette base de données, si vous n’avez pas accès au compte root de la bdd
Le mot de passe de l’utilisateur
Et le cas échéant l’adresse du serveur "MySQL" ou est stocké la base de donnée que l’on souhaite exporter.
Vous pouvez retrouver ses informations dans le fichier "wp-config.php", situé à la racine de votre site:
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'wordpress');
/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'wp-user');
/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'wp-password');
/** Adresse de l’hébergement MySQL. */
define('DB_HOST', 'localhost');
Dans notre exemple db01 sera l’ancienne machine et db02 sera la nouvelle machine:
On Commence par se connecter à db01 et on va lister les bases de données disponibles avec le commande : SHOW DATABASES; N’oublier pas le ";", puis on"quit".
###Connexion au service de base de données.
root@db01:~# mysql -u wp-user -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.3.21-MariaDB-0+deb10u1 (Debian 10)
Copyright (c) 2000, 2020, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>; SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| wordpress |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> quit
Bonne nouvelle, nous retrouvons bien notre base de donnée "wordpress" dans le serveur.
Pour exporter la base de données "wordpress" dans un fichier .sql, nous allons utiliser la commande mysqldump
###Export de la base de données wordpress.
root@db01:~# sudo mysqldump -u wp-user -p -q --databases wordpress /var/tmp/dump_wordpress.sql
Enter password:
Sur cette ligne de commande, nous avons les options suivantes :
- -u : Permet de spécifier l’utilisateur avec lequel nous allons nous connecter. Ici, nous utilisons le compte "root", disposant de toutes les autorisations sur les bases de données.
- -p : Permet de spécifier un mot de passe ; c’est une mesure d’authentification supplémentaire.
- -q : Pour "Quick Mode". Permet d’accélérer la création du fichier SQL lorsque de larges bases de données sont impliquées.
- –databases : Permet de spécifier quelle base de données nous allons exporter.
Ainsi, nous avons donc sauvegardé nos deux bases de données dans le dossier /var/tmp.
Transfére du fichier:
Pour ce faire vous pouvez soit copier-coller le fichier via filezilla par exemple soit passé par SCP:
Nous allons maintenant envoyer notre fichier sur la nouvelle machine. Pour cela, nous utilisons la commande SCP (Secure CoPy).
###Envoi de l'export de la base wordpress.
root@db01:~# scp /var/tmp/dump_wordpress.sql root@192.168.1.2:/var/tmp/dump_wordpress.sql
The authenticity of host '192.168.1.2 (192.168.1.1)' can't be established.
ECDSA key fingerprint is 12:70:5a:21:06:b6:16:de:61:64:e3:e8:20:bd:6f:e6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts.
root@192.168.1.2's password:
dump_wordpress.sql 100% 1970 1.9KB/s 00:00</pre>
Vérifions que votre fichier est bien copié sur notre second serveur.
root@db02:~# ls -rtl /var/tmp/
total 3
-rw-r--r-- 1 root root 1970 janv. 19 18:06 dump_wordpress.sql
root@db02:~#
Passons désormais à l’import de nos bases de données sur notre second serveur, DB02.
Import de la base de données.
Sur DB02 :
Considérons que notre second serveur dispose d’une installation propre de MariaDB. Si nous regardons la configuration de nos bases sur ce serveur, nous avons ceci :
###Connexion au service de base de données.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###Commande permettant de lister les bases de données disponibles.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
Désormais, avant d’importer notre base de données, nous allons créer une base de données avec le même nom:
###Connexion au service de base de données.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###Creation de la base de données "wordpress".
MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]>
Nous pouvons désormais passer à l’import de notre base de données. Pour cela, nous utilisons directement la commande mysql.
###Import de la base de données wordpress.
root@db02:~# mysql -u root -p wordpress > /var/tmp/dump_wordpress.sql
Enter password:
root@db02:~#
La base étant importée, nous pouvons vérifier si celle-ci dispose bien des données correspondante.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###On se positionne sur la base de données wordpress.
MariaDB [(none)]> use wordpress;
###On liste les tables contenues dans la base de données.
MariaDB [wordpress]> SHOW TABLES;
+--------------------------+
| Tables_in_wordpress |
+--------------------------+
| wp_bp_activity |
| wp_bp_activity_meta |
| wp_bp_notifications |
| wp_bp_notifications_meta |
| wp_bp_xprofile_data |
| wp_bp_xprofile_fields |
| wp_bp_xprofile_groups |
| wp_bp_xprofile_meta |
| wp_commentmeta |
| wp_comments |
| wp_em_bookings |
| wp_em_events |
| wp_em_locations |
| wp_em_meta |
| wp_em_tickets |
| wp_em_tickets_bookings |
| wp_et_bloom_stats |
| wp_et_social_stats |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_signups |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
| wp_wppa_albums |
| wp_wppa_comments |
| wp_wppa_exif |
| wp_wppa_index |
| wp_wppa_iptc |
| wp_wppa_photos |
| wp_wppa_rating |
| wp_wppa_session |
+--------------------------+
37 rows in set (0.001 sec)
MariaDB [wordpress]>




















