web-dev-qa-db-fra.com

Comment afficher et consigner les erreurs PHP sur IIS7?

Nous exécutons PHP 5.2.5 sur un serveur IIS 7 et nous avons des problèmes pour rendre PHP les erreurs visibles) ... En ce moment, chaque fois que nous avons une erreur PHP le serveur renvoie une erreur 500 avec le message "La page ne peut pas être affichée car une erreur interne du serveur s'est produite."

Cela peut être un bon paramètre pour les sites de production mais c'est plutôt ennuyeux sur un serveur de développement ... ;-)

J'ai essayé de configurer php.ini pour afficher les erreurs à l'écran ainsi que les enregistrer dans un dossier spécifique mais il semble que le serveur intercepte toutes les erreurs avant et empêche et gère par PHP ...

Est-ce que quelqu'un sait ce que nous devons faire pour faire IIS afficher PHP erreurs à l'écran? Tout lien, conseil ou tutoriel sur le sujet serait apprécié!)

30
Ben

Juste pour revérifier, avez-vous réglé la journalisation sur error_reporting = E_ALL, et display_errors = On dans ton php.ini? Habituellement, cela suffit pour afficher ces erreurs dans IIS 7.

Ensuite, jetez un œil à vos paramètres IIS, car ils peuvent être définis pour afficher uniquement les messages d'erreur localement. Dans l'éditeur de configuration IIS 7, cela se trouve sous le système) .webServer-> httpErrors. Vous devrez changer errorMode en Détaillé de DétailléLocalOnly. Évidemment, cela signifie désormais que toute personne naviguant sur votre site pourra voir l'erreur.

enter image description here

enter image description here

Si vous le souhaitez, vous pouvez également utiliser Remote Desktop pour vous connecter au serveur et exécuter l'application à partir de là, si vous le pouvez.

35
Sam Cogan

Je voulais juste ajouter que "existingResponse" devrait être réglé sur "PassThrough". Je n'ai reçu aucun vrai message d'erreur sans ce paramètre supplémentaire.

2
Bolli

J'ai dû entrer dans les paramètres du serveur Web dans la configuration php et il y a un paramètre là-dedans pour le rapport d'erreurs et est réglé en production par défaut. J'ai dû le changer en développement même après avoir changé le php.ini et la suggestion ici. J'utilise iis 7.5 sur 2008 R2.

0
naps1saps

Vous pouvez le faire facilement en utilisant l'interface graphique du gestionnaire IIS. Sélectionnez votre site et double-cliquez sur Pages d'erreur. Ensuite, cliquez sur "Modifier les paramètres des fonctionnalités ..." et sélectionnez l'option "erreurs détaillées" au lieu de les erreurs de détail par défaut pour les requêtes locales et les pages d'erreur personnalisées pour les requêtes distantes. Voilà, c'est aussi simple que cela!

0
Jeroen Aarts