Erreur 500 : comment debugger en php et afficher le message d’erreur

Vous êtes en train de développer en PHP et soudain, une erreur 500 s’affiche. Problème, aucun message d’erreur ne s’affiche rendant le debuggage compliqué. On vous explique comment avoir un vrai message d’erreur qui décrit l’erreur.

Erreur 500 http php debug

Les codeurs en PHP ont l’habitude de voir des « notice » ou des « warning » à cause d’un point-virgule oublié ou d’une accolade en trop. Dans ces cas-là, la page plante et le serveur vous indique ce qu’il ne va pas et surtout le numéro de ligne où se situe l’erreur. En quelques secondes, on repère le bug et on peut le résoudre facilement.

Mais, car il y a un mais… Parfois, votre script plante et provoque une erreur 500 avec le message tant redouté « Internal Server Error » ou « http error 500 ». Super mais le problème c’est que contrairement à d’habitude, il n’y a aucune information sur l’origine du problème et encore moins sur le numéro de ligne. Si votre projet est composé de milliers de lignes de codes, ça devient compliqué de repérer une erreur sans avoir d’indices. Une aiguille dans une botte de foin.

Afficher les messages d’erreur de manière générale

De manière générale, lorsque votre projet est en développement, on vous conseille fortement d’afficher les messages d’erreurs. Pour cela, vous pouvez le stipuler manuellement dans votre fichier, au tout début du script.

ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);
error_reporting(E_ALL);

Idéalement, faites un include pour que ces lignes s’exécutent sur chaque fichier.

Afficher les messages d’erreur, y compris les erreurs 500

Les fonctions ini_set fonctionnent très bien dans la plupart des cas sauf si vous obtenez une « fatal error ». Dans ce cas précis, l’erreur provoquée ne pourra plus executer les fonctions ini_set et donc aucun message d’erreur ne sera affiché à part le « internal server error ».

La solution est de modifier ce paramètre en amont, directement dans le fichier php.ini de votre serveur. Soit vous avez directement accès au fichier php.ini, soit vous pouvez peut-être le modifier via l’interface de votre hébergeur. Il faut rechercher la variable « display_errors » et mettre en valeur 1.

Une fois que c’est fait, enregistrez ou validez votre modification. Un redémarrage du serveur sera sans doute nécessaire. A partir de maintenant, les erreurs 500 afficheront un vrai message d’erreur et vous gagnerez du temps pour résoudre le bug.

Masquez les erreurs en production

Une fois la phase de développement achevée, n’oubliez pas de masquer les erreurs en faisant l’opération inverse (mettez 0 à la place de 1). Il est préférable, par sécurité, de ne pas afficher les messages d’erreurs PHP lorsque le site est en ligne pour éviter que les utilisateurs ne puissent avoir des informations sur votre code et vos fichiers.

Écrire un commentaire

1 commentaire

  • J’ai signalé le message pour le dysfonctionnement des sons, je vois que je ne suis pas la seule !
    Je possède une petite radio j’écoute sur la FM, je. N’écoute pas sur internet, la petite radio me suffit, j’écoute le soir dans mon lit