Problème avec PHP 8 - PHP - Programmation
Marsh Posté le 12-03-2021 à 14:26:55
Merci pour ton aide, je vais essayer de faire ça... même si je ne suis pas sur d'y arriver
J'imagine que c'est dans le CPanel de mon hébergeur que ça se passe ?
Marsh Posté le 12-03-2021 à 14:57:24
Est-ce que ça vous parle ça ?
[Fri Mar 12 03:28:25.266066 2021] [access_compat:error] [pid 1643:tid 47788211590912] [client 00.000.000.00:0] AH01797: client denied by server configuration: /home/public_html/wp-content/uploads/wpcf7_uploads/
[Thu Mar 11 15:36:54.233489 2021] [authz_core:error] [pid 4578:tid 47788082980608] [client 000.000.000.00:0] AH01630: client denied by server configuration: /home/public_html/.user.ini, referer: https://www.laurentverdier.com/.user.ini
Marsh Posté le 12-03-2021 à 15:05:58
Voilà, normalement c'est celui-là.. Est-ce possible ?
Code :
|
A moins que je ne soit pas au bon endroit...
Marsh Posté le 12-03-2021 à 15:14:49
J'ai suivie cette procédure, je suis dans le bon ?
--> https://aide.lws.fr/base/cPanel/Tut [...] sur-cPanel
Marsh Posté le 12-03-2021 à 19:31:58
Bien justement je ne trouve pas le module "Editeur INI MultiPHP"
Marsh Posté le 13-03-2021 à 13:32:05
Bizarre un hébergeur qui ne donne pas accès à la log php...
Sinon tu peux aussi éditer ton fichier php et mettre :
Code :
|
https://www.php.net/manual/fr/error [...] lay-errors
Ça devrait afficher ton erreur dans la page...
Mais ne laisses pas ça en production, c'est juste pour débuger ton problème !
Marsh Posté le 13-03-2021 à 18:35:11
mechkurt a écrit : Bizarre un hébergeur qui ne donne pas accès à la log php...
|
Je leur ai demandé par mail comment je pouvais faire... j'attend une réponse..
Marsh Posté le 15-03-2021 à 12:15:16
Je crois que j'ai réussi.
Est-ce que ça vous parle plus ?
Marsh Posté le 15-03-2021 à 13:52:57
Code :
|
Bizarre que Worpdress utilise encore mysql_connect qui est déprécié depuis longtemps !
https://www.php.net/manual/fr/funct [...] onnect.php
Met à jour ton install de wordpress avent de changer de version de php et ça devrait régler le problème...
Marsh Posté le 16-03-2021 à 15:07:23
C'est étrange, j'ai développé mon site sur un wordpress tout neuf il y a moins de 12mois et il est à jour.
Je suis actuellement sous Wordpress 5.7
Je fait toutes le mises à jours... est qu'il y en aurais une plus récente encore ?
Marsh Posté le 16-03-2021 à 15:24:17
Nop, si ton WP est a jour ça ne vient pas de là...
Après vérification sur une intall WP, la ligne correspond à une tentative déséspé pour se connecter.
Wp (qui est très fort) s'adapte à l’hébergement et tente "par tout les moyens" de se connecter, sauf que là en php 7 si y'a pas mysqli ben il ne risque pas d'y avoir mysql ! :- /
Du coups je penses que tu est comme ces personnes ci-dessous avec un php7 mais un connecteur mysqli désactivé...
https://stackoverflow.com/questions [...] ql-connect
https://wordpress.org/support/topic [...] ess-files/
Essaye de voir avec le support de ton hébergeur s'ils ont d'autres installations de WP 5.7 en php 7.4 fonctionnel car en l'état, on dirait que le code switch sur la partie non mysqli qui est déprécié
D'après le code :
Code :
|
Ça ne peut être que si tu as la constante WP_USE_EXT_MYSQL définis à true (sans doute dans le config.php à la racine) ou alors que l'extension mysqli n'est pas installé (mais en 2021 c'est franchement bizarre)...
Marsh Posté le 16-03-2021 à 15:30:42
Je vous avoue que j'ai du mal à suivre
mysqli est déjà activé par défaut, que ça soit sur PHP7 ou PHP8
Sur PHP 7.4 tout est ok, ça fonctionne correctement.
Je vais contacter mon hébergeur "o2switch" pour voir si ils peuvent m'aider...
Marsh Posté le 16-03-2021 à 17:26:47
Je ne sais pas ce qu'est "une constante WP_USE_EXT_MYSQL"
Je n'ai pas de fichier "config.php" sur mon serveur. J'en ai un "wp-config.php" mais il ne contient pas "WP_USE_EXT_MYSQL"
Donc à mon avis il y a quelque choses que je ne comprend pas.
Et la réponse de l'hébergeur ne s'est pas faites attendre :
Bonjour,
Cela dépend directement du code de votre site.
De notre côté, nous ne sommes pas Webmaster, nous ne connaissons pas le code de celui-ci.
Je pense que votre site fait appel à des fonctions qui ne sont pas compatibles avec PHP 8.0.
Il doit y avoir des incompatibilité dans votre site concernant PHP 8.0.
Cordialement,
Ludovic
Donc sur le coup je vais devoir régler le souci sans l'aide de l'hébergeur.
Marsh Posté le 16-03-2021 à 17:57:11
J'ai bien compris
Dans quel fichier ?
Je dois ouvrir tous les fichiers .php que je croise sur mon serveur et chercher tous les mysql afin de les transformer en mysqli ?
Est-ce qu'il existe un outil pour m'aider à les chercher ?
Au vue du jeune aàde ce site, je suis surpris que ça coince... pourquoi mes mysql ne sont pas directement en mysqli ?
Marsh Posté le 17-03-2021 à 06:11:19
Hello
Je m'y remet...
Dans le fichier PHP de mon "wp-config.php", il n'y a pas de trace de
Code :
|
C'est peut être ça le problème ?
J'ai essayé de coller le code :
Code :
|
comme recommandé plus haut, mais ça ne change rien..
Marsh Posté le 17-03-2021 à 06:44:24
voilà à quoi ressemble mon fichier "wp-config"
Ma modification est en ligne 41
J'ai pas l'impression que ça change quelque chose..
Marsh Posté le 17-03-2021 à 10:07:29
Je conseillerais plutôt de mettre ligne 41 de ton wp-config.php :
Code :
|
sans les // au début qui commentes la ligne
2 choses l'une soit ça pète ailleurs dans ton code à la définition de la constante et on saura ou ça se trouves, soit tu as toujours la même erreur et on creusera un peu plus le fichier wp-db.php.
Par contre je te déconseilles de faire les modifications directement dans ce fichier car ce te coupera des mises à jour de WP...
NB: Et tu devrais cacher tes clefs de salage, elle ne devrait pas être publique car elle permettent de falsifier les cookies par exemple.
Tu devrais les changer je penses que ce serait plus prudent...
Marsh Posté le 17-03-2021 à 13:56:00
mechkurt a écrit : Je conseillerais plutôt de mettre ligne 41 de ton wp-config.php :
|
Je peut le faire dans un autre fichier ? lequel ? (Un existant ou je dois en créer un ?)
mechkurt a écrit : NB: Et tu devrais cacher tes clefs de salage, elle ne devrait pas être publique car elle permettent de falsifier les cookies par exemple. |
J'ai effacé mon code, j'espère que je n'ai pas fait de boulette.
Je posterais des morceaux à l'avenir ;-)
Si non, j'ai trouvé "WP_USE_EXT_MYSQL" dans le wp-db.php
Peut être que c'est là que ça foire..
Code :
|
Code :
|
Est-ce que ça vous dit quelque chose ?
Marsh Posté le 17-03-2021 à 14:26:08
le tonton a écrit : Je peut le faire dans un autre fichier ? lequel ? (Un existant ou je dois en créer un ?) |
Ben non ligne 41 tu enlèves le commentaire (les // ) et tu passes la valeur de true a false, dans le but de forcer l'utilisation de mysqli (vu que mysql n'est pas dispo sur ton hébergement en PHP 8).
le tonton a écrit :
|
Ben oui j'ai vu cette portion de code, c'est bien pour ça que je te dit de forcer cette constante WP_USE_EXT_MYSQL a false ! ^^
Marsh Posté le 17-03-2021 à 14:39:54
Ok, donc j'ai fait la modification dans le fichier "wp-config"
Et voici l'erreur dans mon fichier log :
Marsh Posté le 17-03-2021 à 14:51:30
Code :
|
je sais pas comment tu t'y est pris mais tu as touché au define WP_DEBUG au lieu d'ajouter celui que je t'ai demandé...
Vire ton WP_DEBUG en trop et ajoute define('WP_USE_EXT_MYSQL', false); ou tu veux !
Y'a de grande chance que ça bug de la même manière mais ce coups ci pour WP_USE_EXT_MYSQL et du coups on saura ou intervenir...
Marsh Posté le 17-03-2021 à 14:55:20
l'erreur est assez claire,
Code :
|
Il est à jour ton wp ?
Les fonctions mysql_ ne'xistent plus depuis PHP7
Marsh Posté le 17-03-2021 à 14:57:46
Mais arrêté avec ça, il est déjà assez embrouillé comme ça, cet appelle est dans un fichier cœur de WP pour garantir la rétro compatibilité de l'hébergement.
Ce n'est pas bizarre que ça existe, c'est bizarre de passer dans cette boucle, et c'est probablement à cause de cette %£$µ§! de constante!
Et on vas finir par découvrir ou est ce qu'elle est initialisé à true (plugin ou thème)...
Marsh Posté le 17-03-2021 à 15:28:53
xtieu a écrit : l'erreur est assez claire,
|
Oui :-)
Pour en avoir le coeur net et être sur que ce n'était pas un problème avec mon wordpress spécifiquement, j’ai pu installer une nouvelle vertion de wordpress sur un autre espace disponible sur mon serveur o2switch.
Je peux faire ce que vous voulez sur cette partie “expérimentale”
http://www.pascalverdiercom.vela92 [...] rdier.com/
La page s’affiche bien sur PHP 7.4
J’active PHP 8 et patatrac, “PHP Fatal error”
Code :
|
Donc ça comment à me sembler étrange que sur une installation toute fraiche de wordpress (il parait que je suis quasi le seul) il y ai un souci avec PHP8
Est-ce que l'hébergeur peut avoir un role là dedans ?
mechkurt a écrit : Mais arrêté avec ça, il est déjà assez embrouillé comme ça, cet appelle est dans un fichier cœur de WP pour garantir la rétro compatibilité de l'hébergement. |
Oui oui, je suis complètement dépassé
Merci pour votre patience.
Marsh Posté le 17-03-2021 à 16:20:51
Alors, voici à quoi ressemble mon fichier wp-config :
Marsh Posté le 17-03-2021 à 16:23:38
J'ai créer le fichier, je ne sais pas comment l'"exécuter" ?
Marsh Posté le 17-03-2021 à 17:08:36
Je cherches pourquoi $this->use_mysqli est à false dans ton cas :
Il est intialisé dans la classe à false :
Code :
|
https://github.com/WordPress/WordPr [...] b.php#L582
Puis on le passe à "true" si il est activé :
Code :
|
https://github.com/WordPress/WordPr [...] b.php#L614
Et on le repasses à false en cas de fallback :
Code :
|
https://github.com/WordPress/WordPr [...] .php#L1659
Je penses quand même que y'a un soucis avec l’hébergement, un WP tout neuf devrait fonctionner (en tout cas il est sensé être compatible php8 depuis la version 5.6).
Tu pourrais nous faire un test avec un fichier php ayant ça comme contenu :
Code :
|
Marsh Posté le 17-03-2021 à 19:50:06
C'est fait, mais ça n'affiche rien.
J'ai juste collé la ligne de code :
Code :
|
Et j'ai nommé le fichier "test.php"
--> https://www.laurentverdier.com/test.php
mechkurt a écrit : |
Je vais essayer de re-contacter mon hébergeur en le brossant dans le sens du poil afin de voir si il est plus locace.
mechkurt a écrit :
|
Oui, c'est fait et là ça fonctionne ;-)
--> https://www.laurentverdier.com/testphpinfo.php
Encore une fois un grand merci à tous les intervenants pour le temps que vous passez à m'aider. Seul j'était à des kilomètres de faire tout cela
Marsh Posté le 18-03-2021 à 08:08:05
Hello les amis !
J'ai reçu un mail d'un mystérieux sauveur qui m'a proposé de décocher "mysqli" et cocher "nd_mysqli" dans les réglages PHP de mon Cpanel.
Et booooom ! c'est passé direct !
Marsh Posté le 18-03-2021 à 10:22:16
De rien, désolé mais je ne connais pas bien cpanel, je cherchais à avoir cette info :
https://www.laurentverdier.com/test [...] ule_mysqli
Tu peux supprimer ton fichier testphpinfo.php si ton problème est réglé !
Marsh Posté le 18-03-2021 à 12:14:22
mechkurt a écrit : De rien, désolé mais je ne connais pas bien cpanel, je cherchais à avoir cette info : |
Tu n'as pas à être désolé
Merci pour ton suivi
Je vais essayer de tout restaurer comme c'était au départ.
Marsh Posté le 11-03-2021 à 15:58:23
Je ne sais pas si je suis au bon endroit pour poser ma question.... Si ce n'est pas le cas, je déplacerais mon poste
J'aimerais activer PHP 8 sur mon site internet Wordpress 5.7 + Thème AVADA.
Normalement, les deux sont compatible avec PHP 8.
Seulement dés que je l'active, mon site plante (grosse frayeur )
Je n'ai plus accès à rien, j'ai juste une page qui se charge et qui me met -->
"There has been a critical error on this website."
"Learn more about troubleshooting WordPress."
Pourtant j'essaye de ne pas utiliser des extensions exotique et surtout elle sont toutes à jour.
Cependant, dés que je repasse en 7.4, je retrouve mon site à l'identique.
Comment est-ce que je peux isoler et régler le problème ?
Message édité par le tonton le 11-03-2021 à 16:02:05
---------------
https://www.laurentverdier.com