¿Cómo puedo mostrar y registrar errores de PHP en IIS7?

¿Cómo puedo mostrar y registrar errores de PHP en IIS7?

Estamos ejecutando PHP 5.2.5 en un servidor IIS 7 y tenemos problemas para hacer visibles los errores de PHP... En este momento, cada vez que tenemos un error de PHP, el servidor devuelve un error 500 con el mensaje "La página no puede ser "Se muestra porque se ha producido un error interno del servidor".

Esta podría ser una buena configuración para sitios web de producción, pero es bastante molesta en un servidor de desarrollo... ;-)

Intenté configurarlo php.inipara mostrar errores en la pantalla y registrarlos en una carpeta específica, pero parece que el servidor detecta todos los errores antes y los previene y maneja con PHP...

¿Alguien sabe qué tenemos que hacer para que IIS muestre errores de PHP en la pantalla? ¡Se agradecería cualquier enlace, consejo o tutorial sobre el tema!

Respuesta1

Solo para verificar, ¿tiene el registro configurado en error_reporting = E_ALLy display_errors = Onen su php.ini? Normalmente esto es suficiente para mostrar estos errores en IIS 7.

A continuación, eche un vistazo a la configuración de IIS, ya que puede estar configurada para mostrar mensajes de error solo localmente. En el editor de configuración de IIS 7, esto se encuentra en system.webServer->httpErrors. Deberá cambiar el modo de error a Detallado desde DetailLocalOnly. Obviamente, esto ahora significa que cualquiera que navegue por su sitio podrá ver el error.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Alternativamente, si desea mantenerlos locales, puede usar Escritorio remoto para iniciar sesión en el servidor y ejecutar la aplicación desde allí, si puede.

Respuesta2

Solo quería agregar que "existingResponse" debe configurarse en "PassThrough". No recibí ningún mensaje de error real sin esa configuración adicional.

Respuesta3

Puede hacerlo fácilmente utilizando la GUI del Administrador de IIS. Seleccione su sitio y haga doble clic en Páginas de error. Luego presione 'Editar configuración de funciones...' y seleccione la opción 'errores detallados' en lugar de los 'errores detallados para solicitudes locales y páginas de error personalizadas para solicitudes remotas' predeterminadas. Voilà, ¡así de simple!

Respuesta4

Probé estos y no funcionó. Específicamente en el "Editor de configuración", necesitaba mantener la "Respuesta existente" en "automático".

Sin embargo, descubrí que si usa FastCGI necesita ir al administrador de IIS -> sitio web predeterminado -> FastCGI-> luego seleccionar c:\php\php-cgi-.exey "editar...".

En "Modo de error estándar", debe cambiar ReturnGeneric500aReturnStdErrIn500

Esto mostrará los errores de PHP si los tiene activados en PHP.INI o mediante la configuración en el código PHP.

información relacionada