Projet

Général

Profil

Anomalie #3874

Mis à jour par Christian P. Momon il y a presque 5 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