Anomalie #3874
Mis à jour par Christian P. Momon il y a environ 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 ?