Oh comme c'est compliqué!
Chaque fois que je refais la procédure (la dernière début 2025), je trouve de petites fautes et des choses à améliorer et à mieux expliquer.
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 ne travaillerons alors que chez notre hébergeur.
Mais cela pourrait aider pour essayer des variations dans la présentation ou de nouveaux plugins ou de nouvelles versions ... sans tout casser!
Il faudra tout de même faire une sauvegarde et de savoir si nous serions capable de la récupérer avec les outils de l'hébergeur.
Le cas considéré ici :
- un hébergeur avec une seule base de données mySQL et trois ensembles de tables pour:
- un site joomla
- un site wordpress
- un second site wordpress
Nettoyage de notre base de donnée
Avant de procéder à l'importation dans un fichier SQL, il est recommandé de procéder à un nettoyage de notre base de données.
De cette manière le fichier à importer sera moins conséquent et passera plus facilement à l'importation sur notre PC!
Le document à consulter: Gain d'espace dans une base de données
Importer de notre hébergeur
Nous devrons commencer par les quatre procédures suivantes :
- reprendre la base de données dans un fichier sql, par exemple db_date.sql
Suivant les hébergeurs, OVH pour moi, on pourrait utiliser la sauvegarde journalière de notre base de données.
Pour les personnes intéressées, j'ai aussi fait la même procédure chez Infomaniak!
Sur OVH je suis allé sur Hébergement, menu Bases de données, le nom de son site (boichat.ch pour moi) et sur la ligne de mon site les 3 petits points dans le cercle, et utiliser Créer une sauvegarde en indiquant les paramètres demandés. On reçoit un email de confirmation et choisirons le téléchargement dans le répertoire Téléchargement chez moi.
Sinon cela se fera avec phpAdmin, depuis l'interface Web que notre fournisseur d'accès nous aura fourni et la base de données correspondant à notre ou nos sites.
Suivant l'hébergeur, il faudra chercher un peu et tâtonner pour le transfert sur notre PC!
La procédure ici a été décrite avec mon site OVH. L'outil se nomme "Exportation des tables depuis la base de données" avec l'option personnalisée. La base de données sera accessible en indiquant son mot de passe.
Dans phpAdmin, c'est l'onglet Importer (on importe depuis!). Ensuite j'ai décoché "Importation partielle".
Début 2025 (passage à Joomla 4), à nouveau des soucis avec mon php.ini dans ...\xampp\php!
max_execution_time = 90000
max_input_time = 6000
memory_limit = 2000M
post_max_size = 2000M
---> La valeur de "post_max_size" doit être >= à la valeur de "upload_max_filesize"
upload_max_filesize = 1000M
Les valeurs sont certainement trop hautes et exagérées (n'a pas marché avec les deux premiers en 600/600), mais cela a fonctionné et rapide sur mon nouveau PC (HP Omen, Intel(R) Core(TM) i7-14700F 2.10 GHz, 32 Go RAM et disque SSD). C'est clair que le temps d'exécution est fonction du PC (CPU, mémoire et disque).
J'ai indiqué pour le "Jeu de caractères du fichier :" utf-8.
Le fichier de base de données est créé assez rapidement.
Ensuite on ouvrira la sauvegarde sur le PC, avec par exemple avec l'incontournable Notepad++ (https://notepad-plus-plus.org), mon éditeur favori pour des adaptations délicates (voir ci-dessous), pour vérifier qu'il ne manque pas une partie des données SQL en fin de fichier (tout en bas on y trouvera un COMMIT; et quelques /*!40101 SET ...).
En général on oublie de le faire et on pourrait constater une erreur d'importation qu'on pourrait faussement.
Ensuite il faut récupérer les fichiers des trois sites.
Avec un client FTP, par exemple WinSCP ou Core FTP nous irons récupérer les trois répertoires de notre hébergeur :
- récupérer le site complet joomla;
- le site wordpress1;
- le site wordpress2.
Il peut arriver que nous ayons, comme moi-même, d'autres répertoires Web qui ne sont ni associés à Joomla, ni à Wordpress, par exemple des fichiers pdf ou familiaux.
Nous transférerons donc aussi ces fichiers pour sauvegarde.
Le transfert des tous ces fichiers prendra vite une bonne heure, suivant la bande passante d'Internet. Donc patience.
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 Wordpress, car c'est implicite.
Nous assumerons qu'un serveur Xamp ou similaire est installé sur notre PC (par exemple dans D:\wamp64\www) et qui peut être rendu actif. Nous ne décrivons pas l'installation pour l'instant.
Il est pratique de créer un sous-répertoire sur notre PC pour y inclure le fichier db_date.sql et les répertoires correspondant aux sites téléchargés.
Exporter 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, pour 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 à phpMyAdmin de notre base de données mySQL associée. Chez moi c'est 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 l'ancienne 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, après sélection à gauche de cette BDD.
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.
En utilisant phpMyAdmin sur OVH nous pourons identifier ce utf8_general_ci qui va suivre à droite de chaque table sous Collation.
Nous devons ensuite créer une nouvelle base de données (sélection en haut à gauche) avec le nom correspondant à unnomjoomla et utiliser l'interclassement utf8_general_ci dans ce cas (bouton Créer).
Cette nouvele base de données sera dans la liste à gauche.
Nous irons dans phpAdmin sous l'onglet 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.
Attention, si jamais: On décochera aussi, Permettre l'interruption de l'importation si la limite de temps configurée dans PHP est sur le point d'être atteinte. (Ceci pourrait aider à importer des fichiers volumineux, au détriment du respect des transactions.)
La petite roue à côté de Parcourir et le bruit du disque nous indique que l'importation est en cours.
En cas de difficulté et de grosses bases de données la procédure qui suit
Adapter la configuration pour Wordpress
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 DB_USER,
- le mot de passe DB_PASSWORD de la base de données pour que cela corresponde à notre PC, (les deux mêmes qu'avec le login phpAdmin)
- en local : define('DB_HOST', 'localhost');
Il faudra encore modifier avec phpMyAdmin les deux champs siteurl et home dans la table wp_options 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 tables **_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 Joomla
Pour joomla, c'est plus simple, nous devons modifier avec Notepad++ le fichier configuration.php avec (même user et password que ci-dessus)
public $host = 'localhost';
public $user = '...';
public $password = '...';
Attention à ces deux derniers: ce sont ceux de la base de données sur le PC, en principe différents de ceux de notre hébergeur.
Sur un PC on utilise volontiers root / (vide).
Il m'est arrivé de tourner en rond avec un messageWarning: session_start(): Failed to read session data: user (path: ...
Wordpress montre mieux que la connexion ne se fait pas correctement ... par notre faute.
Les public $log_path = 'D:\wamp64\www\joomla\logs';
et public $tmp_path = 'D:\wamp64\www\joomla\tmp'; aussi.
Attention au \ ... pas des /.
C'est alors le second ou le troisième moment de vérité pour le Joomla installé, ici : http://127.0.0.1/joomla/
Mettre à jour les versions de Joomla et de Wordpress
Lorsque j'ai terminé les sauvegardes, je mets à jours en principe mes sites et mon PC avec les dernières versions (les extensions aussi).
Comme je suis impatient de nature, il m'est arrivé de bloquer mon site Wordpress sur mon PC avec le message "Indisponibilité temporaire pour cause de maintenance. Veuillez revenir dans un instant" (installation de nouvelles versions d'extension).
Il s'agit alors d'effacer le fichier .maintenance dans le répertoire racine de WordPress.
Je copie aussi toutes ces sauvegardes sur un disque USB externe!