log - ¿Cómo tener errores de visualización de PHP?(He agregado ini_set y error_reporting, pero solo da 500 en los errores)
php hide errors (6)
He tenido este problema al usar PHP5.4 y Plesk 11.5
De alguna manera, las configuraciones de informe de errores y de error de visualización en la página de configuración del dominio de Plesk anulaban por completo cualquier configuración local en .htaccess o los scripts de PHP. No he encontrado una manera de evitar que esto ocurra, así que use la configuración de Plesk para activar y desactivar el informe de errores.
Puede tener configuraciones en su php.ini que impidan que el sitio local anule estas configuraciones, tal vez impuestas por el panel de control utilizado en su servidor.
Entonces, realmente no tengo ningún error en mi página web actual, pero quiero poder ver un error cuando aparecen, en lugar de la página de error HTTP 500. Busqué en Google un poco y pensé que agregar estas dos líneas arreglaría todo.
ini_set(''display_errors'', ''On'');
error_reporting(E_ALL);
NOTA: No tengo acceso al archivo php.ini, ya que estoy usando el servidor de mi cuenta de la escuela.
Así que presenté un error (sin punto y coma después de $ buggy) como en la parte superior de mi página:
<?php
ini_set(''display_errors'', ''On'');
error_reporting(E_ALL);
$buggy
$x = 4 + 2;
...
Sin embargo, acabo de recibir un error del servidor:
"El sitio web encontró un error al recuperar http://mywebpage.com/ . Puede estar fuera de servicio o configurado incorrectamente".
¿Algunas ideas?
EDITAR:
He reconfigurado mi código:
<?php
include_once ''database/errorSettings.php'';
?>
<?php
$buggy // whoops
$x = 4 + 2;
...
errorSettings.php es el siguiente:
<?php
ini_set(''display_errors'', ''On'');
error_reporting(E_ALL);
?>
Pero todavía no funciona ... ¿forma incorrecta de reconfigurar?
Lo que tienes es un error de análisis. Esos lanzamientos antes de que se ejecute cualquier código. Un archivo PHP necesita ser analizado en su totalidad antes de que se pueda ejecutar cualquier código en él. Si hay un error de análisis en el archivo donde está configurando los niveles de error, no tendrán efecto cuando se produzca el error.
O divide tus archivos en partes más pequeñas, como configurar los niveles de error en un archivo y luego include
otro archivo que contenga el código (y errores) reales, o establecer los niveles de error fuera de PHP utilizando las directivas php.ini o .htaccess.
Debe establecer el valor de error_reporting en un archivo .htaccess. Como hay un error de análisis, nunca ejecuta la función error_reporting () en su código PHP.
Pruebe esto en un archivo .htaccess (suponiendo que puede usar uno):
php_flag display_errors 1
php_value error_reporting 30719
Creo que 30719 corresponde a E_ALL, pero puedo estar equivocado.
Editar actualización: http://php.net/manual/en/errorfunc.constants.php
int error_reporting ([ int $level ] )
---
32767 E_ALL (integer)
All errors and warnings, as supported, except of level E_STRICT prior to PHP 5.4.0. 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously
Simplemente escriba el siguiente código en la parte superior del archivo PHP:
ini_set(''display_errors'',''on'');
Añadiendo a lo que deceze dijo arriba. Este es un error de análisis, por lo que para depurar un error de análisis, cree un nuevo archivo en la raíz llamada debugSyntax.php. Pon esto en esto:
<?php
/////// SYNTAX ERROR CHECK ////////////
error_reporting(E_ALL);
ini_set(''display_errors'',''On'');
//replace "pageToTest.php" with the file path that you want to test.
include(''pageToTest.php'');
?>
Ejecute la página debugSyntax.php y mostrará los errores de análisis de la página que eligió para probar.
Para las personas que usan Codeigniter (estoy en C3):
El archivo index.php sobrescribe la configuración de php.ini, por lo que en el archivo index.php, línea 68:
case ''development'':
error_reporting(-1);
ini_set(''display_errors'', 1);
break;
Puede cambiar esta opción para configurar lo que necesita. Aquí está la lista completa:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
6143 E_ALL
2048 E_STRICT
4096 E_RECOVERABLE_ERROR
Espero eso ayude.