see mostrar evitar errores error display_errors debug php apache error-reporting

mostrar - PHP no muestra errores aunque display_errors=On



php error 500 debug (15)

Acabo de experimentar el mismo problema y resultó que mi problema no estaba en los archivos php.ini, sino simplemente que estaba iniciando el servidor apache como un usuario normal. Tan pronto como hice un "sudo /etc/init.d/apache2 restart", mis errores fueron mostrados.

Tengo un servidor Ubuntu ejecutando Apache2 con PHP 5. En php.ini establezco error_reporting = E_ALL | E_STRICT error_reporting = E_ALL | E_STRICT y error_reporting = E_ALL | E_STRICT error_reporting = E_ALL | E_STRICT , pero PHP aún no muestra mensajes de error. También estoy usando servidores virtuales Apache.

Además, ¿cuál es el informe de error más estricto que PHP5.3 tiene para ofrecer? Quiero que mi código sea lo más actualizado y a prueba posible.


Al ejecutar PHP en Windows con ISS, hay algunos ajustes de configuración en ISS que deben configurarse para evitar que se muestren las páginas predeterminadas genéricas.

1) Haga doble clic en FastCGISettings, haga clic en PHP y luego en Editar. Establezca StandardErrorMode en ReturnStdErrLn500.

StandardErrorMode

2) Vaya al sitio, haga doble clic en las páginas de error, haga clic en el estado 500, haga clic en Editar configuración de funciones, cambie las respuestas de error en errores detallados, haga clic en Aceptar

Cambiar las respuestas de error a errores detallados


Asegúrate de que el php.ini que estás modificando está en la carpeta / etc / php5 / apache2, o de lo contrario no tendrá ningún efecto ...


Aunque este es un mensaje antiguo ... tuve una situación similar que me provocó dolor de cabeza. Finalmente, pensé que estaba incluyendo páginas secundarias en index.php con "@include ..." "@" oculta todos los errores incluso si display_errors está activado.


Aunque este hilo es viejo, pero aún así, creo que debería publicar una buena respuesta de esta respuesta .

ini_set(''display_errors'', 1); ini_set(''display_startup_errors'', 1); error_reporting(E_ALL);

Esto seguro me salvó después de horas de tratar de hacer que las cosas funcionen. Espero que esto ayude a alguien.


Cuando actualice la configuración en el archivo php.ini, es posible que deba reiniciar apache. Intenta ejecutar apachectl restart o apache2ctl restart , o algo así.

Además, en su archivo ini, asegúrese de que display_errors = on , pero solo en un entorno de desarrollo, nunca en una máquina de producción.

Además, el informe de error más estricto es exactamente lo que ha citado, E_ALL | E_STRICT E_ALL | E_STRICT . Puede encontrar más información sobre los niveles de error en los documentos php .


Me he encontrado también con el problema. Finalmente encontré la solución. Estoy usando UBUNTU 16.04 LTS.

1) Abra el archivo /ect/php/7.0/apache2/php.ini (debajo de /etc/php uno puede tener una versión diferente de PHP, pero apache2/php.ini estará debajo del archivo de versión), busque ERROR HANDLING AND LOGGING sección y establezca el siguiente valor {display_error = On, error_reporting = E_ALL} .

NOTA - En la sección de QUICK REFERENCE también se pueden encontrar estas directivas de valores pero no cambian allí solo cambian en la Sección I contada.

2) Reinicie el servidor Apache sudo systemctl restart apache2


Sé que este hilo es antiguo, pero acabo de resolver un problema similar con mi servidor Ubuntu y pensé que agregaría una nota aquí para ayudar a otros, ya que este hilo era la primera página en Google para el tema de PHP que no muestra errores.

Intenté varias configuraciones para el valor error_reporting en php.ini. De E_ALL | E_STRICT a E_ALL y E_NOTICE y ninguno funcionó. No recibí ningún error de sintaxis en el navegador (lo cual es bastante molesto en un servidor de desarrollo). Después de cambiar la configuración error_reporting a "E_ALL", todo comenzó a funcionar. No estoy seguro de si se trata de un problema específico de Ubuntu Oneric, pero después de reiniciar los errores de Apache comenzó a mostrarse en las páginas HTML que el servidor estaba publicando. Parece que las opciones adicionales confunden las cosas y se detiene todo el informe de errores. HTH alguien más.


Solo quiero agregar otra trampa aquí en caso de que alguien encuentre esta pregunta con un problema similar al mío.

Cuando usa Chrome (o Chromium) y PHP desencadena un error en el código PHP que se encuentra dentro de un atributo HTML, Chrome elimina todo el elemento HTML para que no pueda ver el error de PHP en su navegador.

Aquí hay un ejemplo:

<p> <a href="<?=missingFunc()?>">test</a> </p>

Cuando llamas a este código en Chrome, solo obtienes un documento HTML con la etiqueta <p> inicial. El resto falta. Ningún mensaje de error ni ningún otro código HTML después de este <p> . Este no es un problema de PHP. Cuando abre esta página en Firefox, puede ver el mensaje de error (Al ver el código HTML). Este es un problema de Chrome.

No sé si hay una solución en alguna parte. Cuando esto te pase, debes probar la página en Firefox o consultar el registro de errores de Apache.


También debe asegurarse de que su archivo php.ini incluya el siguiente conjunto o que los errores solo se apliquen al registro que está configurado de manera predeterminada o especificado en la configuración del host virtual.

display_errors = On

El archivo php.ini es la configuración básica para todos los PHP en su servidor, sin embargo, estos pueden anularse y modificarse fácilmente en cualquier lugar del código PHP y afectar todo lo que sigue a ese cambio. Una buena comprobación es agregar la directiva display_errors a su archivo php.ini . Si no ve un error, pero se está registrando uno, inserte esto en la parte superior del archivo que causa el error:

ini_set(''display_errors'', 1); error_reporting(E_ALL);

Si esto funciona, algo anterior en su código es deshabilitar la visualización de errores.


Tuve el mismo problema con Apache y PHP 5.5. En php.ini , tenía las siguientes líneas:

error_reporting E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT display_errors Off

en lugar de lo siguiente:

error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT display_errors=Off

(el signo = faltaba)


Tuve el mismo problema en mi servidor virtual con Parallels Plesk Panel 10.4.4. La solución fue (gracias a Zappa para la idea) establecer el valor de error_reporting en 32767 en lugar de E_ALL. En Plesk: Inicio> Suscripciones> (Seleccionar dominio)> Personalizar> Configuración de PHP> error_reporting - Ingresar valor personalizado - 32767


Tuve el mismo problema pero utilicé ini_set(''display_errors'', ''1''); dentro del script defectuoso en sí mismo, por lo que nunca se dispara en los errores fatales / de sintaxis. Finalmente lo resolví agregando esto a mi .htaccess:

php_value auto_prepend_file /usr/www/{YOUR_PATH}/display_errors.php

display_errors.php:

<?php ini_set(''display_errors'', 1); error_reporting(-1); ?>

Por eso, no me vi obligado a cambiar el php.ini , usarlo para subcarpetas específicas y podría volver a desactivarlo fácilmente.


Verifique el indicador error_reporting , debe ser E_ALL , pero en alguna versión de Plesk hay comillas ( "E_ALL" ) en lugar de ( E_ALL )

Resolví este problema al eliminar las comillas ( " ) en php.ini

de esto:

error_reporting = "E_ALL"

a esto:

error_reporting = E_ALL


Tuve el mismo problema y finalmente lo resolví. Mi error fue que intenté cambiar /etc/php5/cli/php.ini , pero luego encontré otro php.ini aquí: /etc/php5/apache2/php.ini , cambiado display_errors = On, reinicié el servidor web ¡Y funcionó!

Puede ser que sería útil para alguien distraído como yo.