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 ?
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 ?