Le site était à la version 3.9 de Joomla Avec PHP 7.4 (PHP est le langage avec lequel est écrit Joomla)
À la mise à niveau la version la plus récente de Joomla! était 5.4 avec PHP 8.3
Aujourd’hui, Joomla et toutes ses extensions fonctionne avec PHP 8.3, or Joomla 3.9 ne fonctionne pas sous PHP 8.3!
La mise à jour de 3.9 à 5.4 est donc impossible.
Il faut faire une mise à niveau. Cette migration est un processus long et complexe qui implique de passer d’abord par la version 4.4.14 de Joomla, version charnière qui fonctionne avec PHP 7.4 et 8.1.
Afin de garder le site en fonction durant la mise à niveau, j’ai travaillé sur une copie de développement existante (J3).
À chaque étape du processus je prenais des copies de sécurité « Backup »
En cours de route, j’ai découvert que le site de production et le site de développement partageaient la même base de données, ce qui m’a causé énormément de problèmes.
Le Processus
- Passé à Joomla 3.10.12
- Dans J3, passé à Joomla 4.4 et PHP 8.1 avec Beaucoup de problèmes
- Il a fallu désactiver plusieurs extensions qui n’étaient pas compatibles
- Le gabarit existant n’est pas supporté, j’ai dû installer un nouveau gabarit. Afin de garder le même « Look » que l’ancien site, j’ai décidé de construire un gabarit qui ressemble à celui existant. J’ai utilisé un outil appelé « Template Creator CK »
- Créé un « Redirect » dans le site de production qui dirige l’usager vers le site J3, afin de pouvoir passer à PHP 8.1
- Passé à Joomla 4.4.14 sous PHP 8.1
- La structure de la base de données est différente
- Joomla utilise maintenant « Smart-Search » au lieu de « Search »
i. Beaucoup d’anciennes extensions, ne fonctionnent pas, entre autres « Drop Down Article » et « Search ». Je suis allé sur le Forum de Joomla pour trouver des solutions. Dans le cas de « Search » j’ai dû aller supprimer manuellement des entrées dans la base de données pour éliminer les anciennes versions qui n’avaient pas été supprimées lors de la conversion
ii. Installé les versions compatibles des extensions existantes (JCE, SigPlus, Akeeba ….)
iii. Problème avec les traductions, contacté FALANG, qui m’ont donné un bon coup de main.
iv. Entre autres, avec Falang il faut désactiver « Smart Search-Content» et le remplacer par «Smart Search Falang-Content»
v. Plusieurs liens étaient brisés après la conversion, il a fallu les corriger manuellement.
- Pour passer à Joomla 5.4 j’ai créé une nouvelle copie du site appelée « Sand »
Je veux avoir 3 sites
1. Production (site actuel, dirigé vers J3)
2. J3 (version qui est passée à Joomla 4.4)
3. Sand (copie de J3 ou je vais passer à Joomla 5.4 avec PHP 8.3)
Le but est d’avoir une copie fonctionnelle du site avec Joomla 5.4 et PHP 8.3 sur Sand, d’en faire une copie dans production et d’éliminer J3.
En bout de ligne il y aurait le site en production et un site de développement, tous les deux à jour avec la dernière version de Joomla et de PHP.
- Le « Restore » de J3 dans Sand ne fonctionne pas! J’ai perdu beaucoup de temps là-dessus, contacté FUNIO, finalement une personne du support technique m’a envoyé un lien qui contenait la solution; pour que ça fonctionne, j’ai dû rétrogradé à PHP 8.0! Une fois le restore en place, j’ai remis PHP à 8.3.
- Dans Sand passé à Joomla 5.4
- De nouveau vérifié les extensions, mais là, les choses se passent vite et bien
- Le site fonctionne, mais donne un message d’erreur erroné lors des traductions.
- Réglé le dernier problème en réindexant « Smart Search »
- Mis en fonction les mises à jour automatiques que Joomla 5.x propose.
- Dans AKEEBA, créé 2 profiles différents pour les copies de sécurité, l’un pour Production et l’autre pour Sand et pris des copies.
- Supprimé l’ancien site et les vieilles copies de sécurité de sur le serveur
- Téléchargé les copies de sécurité sur un ordinateur local
