log error enable activar php apache logging error-handling

enable - php error log xampp



php return 500 error pero no error log (9)

Aquí hay otra razón por la cual los errores pueden no ser visibles:

Tuve el mismo problema. En mi caso, copié la fuente de un entorno de producción. Por lo tanto, la variable ENVIRONMENT definida en index.php se estableció en ''production'' . Esto provocó que error_reporting se establezca en 0 (sin registro). Simplemente configúrelo como ''development'' y debería comenzar a ver los mensajes de error en el registro de Apache.

Resultó que el 500 se debió a un semi colon faltante en la configuración de la base de datos :-)

Tengo un problema cuando tengo una aplicación php que devuelve un error interno del servidor (500), pero no aparece nada en el registro de errores.

Ahora sé que hay un error con lo que estoy tratando de ejecutar, sé que me faltan algunos archivos y qué no, pero algo debe aparecer en el registro de errores de Apache (de lo contrario, ¿cómo se supone que sé exactamente lo que me falta?).

Creé un script de prueba en el que se produce un error bajo la misma configuración de vhost y esos errores se muestran bien, por lo que todo parece configurado en cuanto a php / apache. ¿Hay ciertos errores de php que aparecen en el registro de errores (php es configurado para mostrar cualquier tipo de aviso, advertencia, error, error fatal, etc.)?

Esto se ejecuta en ubunut 10.04 con el estándar apache y php del repositorio de ubuntu con apt-get.


Asegúrate de que tus permisos de archivos sean correctos. Si apache no tiene permiso para leer el archivo, entonces no puede escribir en el registro.


Copie y pegue lo siguiente en un nuevo archivo .htaccess y colóquelo en la carpeta raíz de su sitio web:

php_flag display_errors on php_flag display_startup_errors on

Los errores se mostrarán directamente en su página.

Esa es la mejor manera de depurar rápidamente, pero no lo use durante mucho tiempo porque podría ser una violación de seguridad.


Debe habilitar el registro de errores de PHP.

Esto se debe a un error aleatorio en el servidor web cuando tienes un error de php, arroja un error interno de 500 (tengo el mismo problema).

Si busca en el registro de errores de PHP, debería encontrar su solución.

ver aquí en el documento de cómo habilitarlo en php.ini


En el pasado, no tenía registros de errores en dos casos:

  1. El usuario bajo el cual se estaba ejecutando Apache no tenía permisos para modificar el archivo php_error_log .
  2. Se produjo el error 500 debido a la mala configuración de .htaccess , por ejemplo, la configuración incorrecta del módulo de reescritura. En esta situación, los errores se registran en el archivo error_log Apache.

Otro caso que me sucedió es que realicé un CURL en algunas de mis páginas y obtuve un error interno en el servidor y no había nada en los registros de apache, incluso cuando habilité todos los informes de errores.

Mi problema fue que en el CURL establecí curl_setopt($CR, CURLOPT_FAILONERROR, true);

Que luego no me mostró mi error, aunque hubo uno, esto sucedió porque el error estaba en un nivel de marco y no en PHP, por lo que no apareció en los registros.


Para los proyectos de Symfony, asegúrese de verificar los archivos en la aplicación del proyecto / registros

Más detalles disponibles en esta publicación:
Cómo depurar el error 500 en Symfony 2

Por cierto, otros marcos o CMS comparten este tipo de comportamiento.


Tal vez algo desactiva la salida de error. (¿Entiendo que estás tratando de decir que otras secuencias de comandos muestran correctamente sus errores en el registro de errores?)

Podría comenzar a depurar el script determinando dónde sale el script (comience agregando un echo 1; exit; a la primera línea del script y verifique si el navegador emite 1 y luego mueva esa línea hacia abajo).


Escanee sus archivos de origen para encontrar @ .

Desde el sitio de documentación php

Actualmente, el prefijo de operador de control de errores "@" incluso deshabilitará el informe de errores críticos que terminarán la ejecución del script. Entre otras cosas, esto significa que si usa "@" para suprimir los errores de una determinada función y, o bien no está disponible o ha sido mal escrita, la secuencia de comandos morirá allí mismo sin ninguna indicación de por qué.