Projet

Général

Profil

Anomalie #3874

Mis à jour par Christian P. Momon il y a plus de 4 ans

*Contexte*
Actuellement, le site boutique.april.org tourne sur la vm lamp en PHP 5.
Comme PHP5 n'est plus maintenu, nous migrons tous les sites de la vm lamp vers PHP 7.

*Le problème*
Le site boutique.april.org fait tourner Thelia 1.5.4.3 qui s'appuie sur des fonctions _mysql_*_ pour l'accès à la base de données.

Les fonctions _mysql_*_ sont **deprecated** depuis PHP 5.5 et après une période de transition d'environ 3 ans, elles ont été *complètement supprimées* dans PHP 7.
À la place, la recommandation est d'utiliser les librairies MYSQLi ou PDO.

Pour information, dans le code source de Thelia 1.5.4.3, il y a plus de 200 appels à des fonctions _mysql_*_

*Solutions*
Solutions possibles :
1) fermer le site
Fred dit que le site est encore utile (don direct à l'April).

2) modifier manuellement le code :
Il y a 200 lignes à modifier avec des risques majeurs de changement de comportement donc bof.

3) modifier automatiquement le code :
* https://github.com/philip/MySQLConverterTool

4)
activer un module mysql_* pour PHP 7
Deux approchent existent :
* installer une version du module d'origine :
** https://github.com/php/pecl-database-mysql,
** n'est plus maintenu,
** un mélange qui est risque de problèmes,
** maîtrise ?

* installer un module jouant le rôle de wrapper vers mysqli_* :
** https://github.com/dshafik/php7-mysql-shim
** maîtrise ?

5) 4) migrer vers une version plus récente de Thélia
* version utilisée : 1.5.4.3
* dernière version : 2.3.5
Les deux versions sont très éloignées : se pose la question de la faisabilité ?

6) 5) isoler le service sur un autre serveur
Cloner la vm lamp en vm lamp5 et n'y laisser que les services incompatible avec PHP 7.

7) 6) autre ?

Retour