PHP no muestra errores aunque muestre errores = On


Tengo un servidor Ubuntu ejecutando Apache2 con PHP 5. En el php.ini I set error_reporting = E_ALL | E_STRICT y error_reporting = E_ALL | E_STRICT, pero PHP todavía no está mostrando mensajes de error. También estoy usando hosts virtuales Apache.

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

Author: wowpatrick, 2011-06-26

15 answers

También debe asegurarse de que su archivo php.ini incluya el siguiente conjunto o los errores solo irán al registro que se establece por defecto o se especifica en la configuración del host virtual.

display_errors = On

El archivo php.ini es donde la configuración base para todo PHP en su servidor, sin embargo, estos pueden ser fácilmente anulados y alterados 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 ves un error, pero uno se está registrando, inserte esto en la parte superior del archivo causando el error:

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

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

 69
Author: Ray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-30 21:58:31

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, cambió display_errors = On, reinició el servidor web y funcionó!

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

 12
Author: vk23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-22 16:09:16

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

 7
Author: Bartek Kosa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-24 17:30:46

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

 3
Author: Tomek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-04 07:07:13

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

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

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

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-25 20:55:07

Marque la bandera 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 eliminando las comillas (") en php.ini

De esto:

error_reporting = "E_ALL"

A esto:

error_reporting = E_ALL
 1
Author: fremsoft,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-04 18:18:20

Tuve el mismo problema pero usé ini_set('display_errors', '1'); dentro del script defectuoso por lo que nunca se dispara en errores fatales / de sintaxis. Finalmente lo resolví añadiendo 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 deshabilitarlo fácilmente de nuevo.

 1
Author: mgutt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-27 02:08:12

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

Probé varias opciones de configuración para el valor error_reporting en php.ini. De E_ALL / E_STRICT a E_ALL & E_NOTICE y ninguno funcionó. No estaba recibiendo ningún error de sintaxis que se muestra en el navegador (que es bastante molesto en un servidor de desarrollo). Despues cambiando la configuración error_reporting a "E_ALL" todo empezó 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 comenzaron a mostrar en las páginas HTML el servidor estaba sirviendo. Parece que las opciones adicionales confunden las cosas y todos los informes de errores se detienen. HTH alguien más.

 0
Author: Zappa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-11 00:36:12

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

 0
Author: PhlegmaticFraggle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-29 13:01:14

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

 0
Author: Johnz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-28 20:30:59

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

Cuando está utilizando 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 se llama a este código en Chrome, solo se obtiene un documento HTML con la etiqueta starting <p>. El resto ha desaparecido. No hay mensaje de error y ningún otro código HTML después de esto <p>. Esto es no un problema de PHP. Al abrir esta página en Firefox, puede ver el mensaje de error (Al ver el código HTML). Así que este es un problema de Chrome.

No sé si hay una solución en algún lugar. Cuando esto te sucede, entonces tienes que probar la página en Firefox o revisar el registro de errores de Apache.

 0
Author: kayahr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-14 14:28:58

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)

 0
Author: hiszpan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-02 16:51:14

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

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

Esto me salvó después de horas de intentar que las cosas funcionaran. Espero que esto ayude a alguien.

 0
Author: mikaelovi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-09 10:54:48

Cuando se ejecuta PHP en Windows con ISS, hay algunas opciones de configuración en ISS que deben establecerse para evitar que se muestren páginas predeterminadas genéricas.

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

Modo estándar

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 a los Errores detallados, haga clic en ok

Cambiar las Respuestas de Error a los Errores Detallados

 0
Author: naw103,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-07 02:29:45

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

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

NOTA - Bajo la sección QUICK REFERENCE también se pueden encontrar estas directivas de valores, pero no cambian allí, solo cambian en la Sección que dije.

2) Reiniciar el servidor Apache sudo systemctl restart apache2

 0
Author: kn_snipper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-10 10:17:24