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


29

Estamos ejecutando PHP 5.2.5 en un servidor IIS 7 y tenemos problemas para hacer visibles los errores de PHP ... En el momento en que tenemos un error de PHP, el servidor envía un error 500 con el mensaje "La página no puede ser aparece 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 molesto en un servidor de desarrollo ... ;-)

He intentado configurar php.inipara mostrar errores en la pantalla, así como para registrarlos en una carpeta específica, pero parece que el servidor detecta todos los errores antes y evita y maneja PHP ...

¿Alguien sabe lo que tenemos que hacer para que IIS muestre errores de PHP en la pantalla? ¡Cualquier enlace, consejo o tutoriales sobre el tema sería apreciado!


En primer lugar, asegúrese de que tiene los siguientes: log_errors=1, error_reporting=-1, log_errors_max_len=0.
Pacerier

ini_set("display_errors", "on");agregue estas líneas en el archivo php.
ELITE

Respuestas:


35

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

A continuación, eche un vistazo a su configuración de IIS, ya que puede configurarse para mostrar solo mensajes de error localmente. En el editor de configuración de IIS 7, esto se encuentra en system.webServer-> httpErrors. Tendrá que cambiar errorMode a Detallado de DetalladoLocalOnly. 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.


1
Sí, lo comprobé y todo está configurado correctamente.
Ben

Añadido algo de información más Problemas
Sam Cogan

1
Cambiar el errorMode a "Detallado" de "DetailLocalOnly" hizo el truco. ¡Gracias!
Ben

1
También tuve que eliminar la colección de errores HTTP en system.webServer. No funcionó con PHP hasta que lo hice.

1
Destaque eso system.webServercon mi sangre y agregue la nota: "Sí, hay un combo".
DiGi

2

Solo quería agregar, que "existenteResponse" debería establecerse en "PassThrough". No recibí ningún mensaje de error real sin esa configuración adicional.


1
¿Dónde se encuentra esta configuración?
Eugene Mala

0

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 predeterminados para solicitudes locales y páginas de error personalizadas para solicitudes remotas'. ¡Voilà, así de simple!


¿Dónde se pueden mostrar los registros y errores?
JukEboX

0

Tuve que ir a la configuración del servidor web en la configuración de php y hay una configuración allí para informar de errores y está configurada en producción de forma predeterminada. Tuve que cambiarlo a desarrollo incluso después de cambiar el php.ini y la sugerencia aquí. Estoy usando iis 7.5 en 2008 R2.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.