Que c'est compliqué et précis. Chaque fois que je refais la procédure, je trouve de petites choses à améliorer et à mieux expliquer.
Attention à l'interclassement et à la vérification que le fichier export de la base de données est complet. 

J'avais déjà écrit un article un mai 2016, mais celui-ci est différent et plus général. Je travaille un peu autrement et c'est normal avec les années, l'expérience et aussi avec mes deux autres sites Wordpress intégrés.

Généralités

Lorsque nous serons devenus familier avec Joomla ou/et Wordresss, nous ne nous amuserons plus à faire de petits essais sur un PC et nous travaillerons alors que directement chez notre hébergeur. Après quelques semaines intensives de travail, d'adaptations et de corrections, il faudrait tout de même faire une sauvegarde et savoir si nous serions capable de la récupérer. Nous allons donc montrer ici une récupération qui s'est bien passée.

Considérons le cas suivant :

Exporter de notre hébergeur

 Nous devrons commencer par les quatre procédures suivantes :

  • reprendre la base de donnée dans un fichier sql, par exemple db_date.sql

Ceci se fera avec phpAdmin et depuis l'interface Web que notre fournisseur d'accès nous aura fourni. Suivant l'hébergeur, il faudra sans doute tâtonner pour le transfer  sur notre PC! L'outil se nomme sans doute "Exportation des tables depuis la base de données" avec l'option personnalisée. 

Nous noterons l'interclassement de la base de données des trois sites, qui est ici utf8_general_ci, sans doute celle, définie lors de la première installation initiale, c'est à dire celle de Joomla. Nous ne cocherons pas l'option Create Database qui ne sera pas ajoutée dans  db_date.sql.
Attention à la "Taille maximale de la requête générée": je l'ai fait passée de 50'000 à 5'000'000 pour ne pas avoir un fichier tronqué et impossible à importer. Ensuite on ouvrira la sauvegarde sur le PC, avec par exemple Notepad++, pour vérifier qu'il ne manque pas une partie des données SQL en fin de fichier. En général on oublie de la faire et on constatera une erreur d'importation qu'on pourrait faussement attribuer à une erreur de définition d'interclassement. 

Avec un client FTP et pour les trois répertoires :

  • récupérer le site complet joomla;
  • le site wordpress1;
  • le site wordpress2.

Comme nous copions les répertoires et que nous importons la base de données, il est inutile de noter les versions de Joomla et Wordpres, car c'est implicite.
Nous assumerons qu'un serveur Xamp ou similaire est installé sur notre PC et qui peut être rendu actif. Nous ne décrivons pas l'installation pour l'instant.

Importer sur notre PC

Nous allons copier ce matériel retiré par FTP dans trois répertoires, ici joomla, wordpress1 et wordpress2.
Si ces répertoires existent déjà nous les déplacerons en sauvegarde et de préférence zippé, car cela prend beaucoup de place.
Nous aurons donc par exemple un des répertoires: D:\wamp64\www\wordpress1 avec tous les fichiers Wordpress équivalent à notre hébergeur sous wordpress1.

Pour la suite, attention d'utiliser un bon éditeur, Notepad++ par exemple, pour éditer nos fichiers. Il nous est arrivé de grosses surprises en corrigeant un wp-config.php avec un éditeur Windows standard et de le transférer sur notre site. 

A présent il nous faut déterminer le nom de la base de données! Le plus facile est de consulter sur leurs racines wp-config.php pour Wordpress ou configuration.php pour Joomla. Nous y trouverons respectivement

define('DB_NAME', 'unnomjoomla');

public $host = 'unnomjoomla.mysql.db';

Nous pouvons à présent accéder phpAdmin de notre mySQL installé dans Xamp avec http://127.0.0.1/phpmyadmin/ après avoir entré l'utilisateur et le mot de passe. Si nous avons déjà cette base de données unnomjoomla dans mySQL, nous la renommerons avec un nom significatif avec la date par exemple. Pour cette opération et la création d'une nouvelle base de données, c'est l'onglet Opérations en principe.

Nous pourrions toujours déjà essayer un http://127.0.0.1/wordpress1/ et recevrions un "Erreur lors de la connexion à la base de données", c'est normal.

Nous devons ensuite créer une base de données avec le nom correspondant à unnomjoomla et utiliser l'interclassement utf8_general_ci que nous espérons être correct.

Nous irons dans phpAdmin sous Import, choisirons le fichier db_date.sql (ou autre nom bien significatif) précédemment exporter de notre hébergeur. Le jeu de caractère sera UTF-8. Le bouton "Exécuter" devrait faire le travail.

Adapter la configuration pour Joomla 

L'étape suivante pour wordpress1 et 2 est de corriger le fichier de configuration wp-config.php avec Notepad++.

Il faudra alors modifier

  • l'utilisateur,
  • le mot de passe de la base de données pour que cela corresponde à notre PC et que nous sommes
  • en local : define('DB_HOST', 'localhost');

Il faudra encore modifier avec phpAdmin les deux champs url et home dans la table wp_option pour qu'il pointe correctement sur http://127.0.0.1/wordpress1. Nous devronc donc modifier ces deux premiers champs de la table wp_options.
Attention! L'extension wp_ est définie dans le fichier wp-config.php et nous ne l'avons pas touché dans ce dernier, c'est logique. Il correspond à notre installation faite chez notre hébergeur. Il sera sans doute différent et doit l'être dans le cas où nous avons deux Wordpress installés sur une seule base de données mySQL avec deux table **_option.

C'est alors le moment de vérité pour le Worpress installé, ici : http://127.0.0.1/wordpress1/

Si nous avons des difficulté, il faudra déposer un true et le remettre plus tard dans :

define('WP_DEBUG', false);

Adapter la configuration pour Wordpress

Pour joomla, c'est plus simple, nous devons modifier avec Notepad++ le fichier configuration.php avec

public $host = 'localhost';

public $user = '...';

public $password = '...';

Les public $log_path = 'D:\wamp64\www\joomla\logs'; et public $tmp_path = 'D:\wamp64\www\joomla\tmp'; aussi.

C'est alors le secon ou troisième moment de vérité pour le Joomla installé, ici : http://127.0.0.1/joomla/