Bug bizarre : erreur 500 sur phpinfo - PHP - Programmation
Marsh Posté le 29-01-2024 à 18:38:22
Déjà pour ton phpinfo, t'attend une key "info", mais t'as mis ?phpinfo=1 dans ton exemple.
Ensuite comme dit koskoz, regarde déjà dans le log Apache, si c'est une erreur 500.
Marsh Posté le 29-01-2024 à 19:11:48
FlorentG a écrit : Déjà pour ton phpinfo, t'attend une key "info", mais t'as mis ?phpinfo=1 dans ton exemple. |
Malgré l'erreur de clé, ça aurait dû afficher l'IP (passer dans le else, ce qui ne semble pas être la cas). Je verrais bien un pb de droits d'accès, fichiers transférer avec un compte qui ne permet pas ensuite à apache d'exécuter les fichiers php
Marsh Posté le 29-01-2024 à 21:09:44
Ah oui, effectivement
Marsh Posté le 29-01-2024 à 22:33:20
Désolé pour la typo sur phpinfo et info, problème de copier coller, j'ai raccourci pour tester d'autres fonctions...
Le probleme (que je ne comprends pas), c'est qu'il ne semble pas y'avoir d'erreur, en tout cas pas affiché alors qu'elle devrait et pas plus dans les logs.
J'avais une 500 au début dans le cas du phpinfo() mais sans autre message, je ne l'ai plus depuis que j'ai redémarré le serveur (have you tried to turn it off and on again), maintenant j'ai une reponse 200 mais toujours sans affichage.
J'ai modifié comme ci-dessous :
Code :
|
J'ai aucun affichage lors de la boucle phpinfo, même pas le A du début, alors que dans les 2 autres cas l'affichage ne présente pas de surprise.
J'ai essayé dès le début en mode minimal comme ton exemple Koskoz, (je l'air refait pacqu'on est pas toujours fiable ^^), mais ça ne fonctionne pas mieux.
Marsh Posté le 30-01-2024 à 08:40:15
Nouveau test ce matin avec ce fichier :
Code :
|
/test.php?error=1
Citation : A |
/test.php?info=1
Citation : HTTP/1.1 200 OK |
Marsh Posté le 30-01-2024 à 13:21:52
Citation : Content-Length: 0 |
Non rien du tout, ni A ni rien d'autre...
Nib
Queud
Peau de zob
Jamais vu ça.
Du php non interprété oui, mais du des fois ça marche et des fois ça marche pas sans erreur ni log, c'est la première fois...
Je vais faire un post sur le forum de Plesk mais je ne sais même pas comment le formuler.
Le pire c'est que le but c'est pas d'avoir phpinfo() mais de faire marcher un vieux magento hébergé sur un vieux centos à une machine récente, autant dire que je suis pas sorti des ronces...
Marsh Posté le 30-01-2024 à 13:56:09
Y'aurait pas un module de sécurité Apache qui bloquerait l'exécution de la page PHP quand tu lui passes certains noms de paramètres ?
J'ai eu ça avec un wiki (Mediawiki). Certaines pages n'étaient pas envoyées au navigateur parce que certains articles, quand ils étaient en mode "édition", avait de la syntaxe wiki qui était interprétée par le module de sécurité apache comme étant un truc posant pb Une fois le module désactivé (ou certaines règles retirées), ça allait beaucoup mieux Et pareil, ça le faisait que sur certaines pages du wiki, pas sur toutes. J'ai mis du temps à trouver.
Et le support informatique qui disait que ça venait de l'appli. Moi, je disais non, c'est pas possible, la page n'est pas envoyée au navigateur, donc, le PHP de l'appli n'est même pas interprété, donc, le pb se passe avant l'interprétation de PHP, donc, ça vient d'apache
Edit : moi, c'était une erreur 403 que j'avais, pas 500. La solution était de désactiver les modes SecRuleEngine et SecRequestBodyAccess directement dans la configuration général d’apache
https://www.mediawiki.org/wiki/ModSecurity
https://www.mediawiki.org/wiki/Topic:Tq7x3cezzpgqwimt
Marsh Posté le 30-01-2024 à 18:03:15
rufo a écrit : Y'aurait pas un module de sécurité Apache qui bloquerait l'exécution de la page PHP quand tu lui passes certains noms de paramètres ? |
Sur mon serveur j'ai configuré ModSecurity en mode Detection only (du coups ça fait des trace dans la log et c'est fail2ban qui gère vraiment les malveillant).
De toute façon de ce que je comprend du truc, ça ne devrait pas intervenir différemment entre un appel test.php?info=1 et test.php?cur=1 car ça intervient en amont sur de l'affichage sur la detection de requete malveillante (genre un gars qui essaye d’accéder à un fichier de config.
koskoz a écrit : Vu que tu as testé uniquement avec mon code plus haut ça ne devrait pas se produire non ? |
Oui, je penses aussi.
koskoz a écrit : Qu'est-ce que tu vois si tu affiches la source de la page ? |
Je ne vois rien, je penses que rien n'est renvoyé, j'ai un chiffre 1 en haut de page comme N° de ligne mais je penses que c'est le comportement par défaut sur un fichier vide.
Demain j'aurais plus de temps pour m'en occuper, j'essayerais de demander sur le forum de Plesk...
Marsh Posté le 30-01-2024 à 18:58:53
J'y connais rien , mais au pif: Y'aurais pas une ré-écriture des URL ou ce genre de trucs dans le htaccess?
Marsh Posté le 31-01-2024 à 08:25:13
J'ai essayé de renommer le .htaccess du Magento pour voir mais sans succès...
Ce serait vicieux qu'une recriture d'url capte test.php?info=1 et pas les autres, mais on est jamais trop prudent, et le htaccess pourrait agir sur autre chose que la ré-écriture (chargement de module, cache ou autre)...
Marsh Posté le 31-01-2024 à 09:49:33
Certains paramètres d'url pourraient être considérés comme dangereux pour la sécu C'était ma piste...
Marsh Posté le 31-01-2024 à 11:45:23
Tu pourrais nous faire une synthèse de tes tests au final avec le script exact testé. J'ai l'impression que tout n'a pas été mis sur le topic avec exactitude
Parce que j'ai cru comprendre qu'avec le même script, suivant le paramètre mis dans l'url, soit t'avais un truc qui s'affichait, soit t'avais rien du tout, comme si son serveur web ne renvoyait rien du tout.
Marsh Posté le 31-01-2024 à 13:21:21
Désolé si je n'ai pas été clair.
En gros ne réussissant pas à afficher mon site migré, j'ai dabord pensé à un problème de migration et de version de php, donc pour tester j'ai crée un fichier info.php avec <?php phpinfo-); ?>.
Marche pas (erreur 500 je crois au tout début).
Je tentes mon fichier php de test d'IP (que j'utilisais pour filtrer par IP lors de certaine maintenance), celui-ci fonctionne donc php marchouille...
Du coups je fait un version un peu plus "élaborés" de mon fichier de test et on en est à peu près là :
https://forum.hardware.fr/hfr/Progr [...] m#t2463078
Tous les cas de figure fonctionne comme attendu (affiche de l'erreur, de l'IP ou de l'utilisateur) sauf ?info=1qui ne renvoie rien d'autre qu'une entête 200 et ne crée pas d'erreur.
A priori j'ai des 200 depuis le redémarrage du serveur, il me semble que j'étais en erreur 500 sans plus de détail avant celui-ci...
Marsh Posté le 01-02-2024 à 08:26:13
Bon ben je sais pas trop ce que c'était car en décochant puis recochant le proxy nginx et en remettant le bon handler php ça semble maintenant fonctionner...
Probablement des fichier de configuration à ré-écrire.
Maintenant va falloir faire tourner le Magento, ça va probablement être encore une autre partie de plaisir.
Marsh Posté le 29-01-2024 à 18:16:25
J'ai migré un vieux Magento 1.8 entre 2 serveurs administré sur Plesk.
La migration s'est déroulé sans soucis mais le site refuse de fonctionner sur le nouveau serveur, erreur 500 sur l'index, j'ai fait les trucs de base de maintenance Magento, vider le cache, les sessions etc mais au final j'ai essayé de faire toruner un bête script php pour voir si c'était un problème de droits sur les fichier ou autre.
Je fait donc un fichier test.php contenant c'est quelques lignes :
et ce qui vas suivre vas vous étonner...
/test.php?gcu=1 => get_current_user: nom_de_l_utilisateur_ftp (sur Plesk c'est le même que l'utilisateur apache / php)
/test.php => IP:XX.YYY.XX.YYY
/test_ip.php?phpinfo=1 => aucun affichage
Comment c'est possible d'après vous ?
Sachant que le même script sur un autre hébergement du même serveur Plesk (et avec la même configuration de php, la dernière 5.6) va fonctionner correctement en affichant la page phpinfo "normalement".
Je vais probablement aller faire un post sur le forum de Plesk mais je ne sais même pas trop quoi leur dire, quelqu'un a une idée ?
---------------
D3