2012-10-11 44 views
17

¿Dónde puedo encontrar archivos de registro de errores? Necesito revisarlos para resolver un error interno del servidor que se muestra después de instalar suPHP.¿Dónde puedo encontrar archivos de registro de errores?

+1

Depende de su configuración de registro :) CO – Nemoden

+1

mi servidor es centos pero no muestra nada en var/log/httpd – user1010966

+0

Compruebe si ['error_log'] (http://www.php.net/manual/en /errorfunc.configuration.php#ini.error-log) La ruta se establece en php.ini. Si no está configurado, generalmente se registrará en el registro de errores del servidor web. – air4x

Respuesta

2

¿Qué sistema operativo está utilizando y qué servidor web? En Linux y Apache, puede encontrar apache error_log en/var/log/apache2/

+2

Haga preguntas sobre los comentarios –

+0

debajo/var/log no hay ninguna carpeta o archivos llamados apache2 o apache. Mi servidor es centos - apache – user1010966

+0

en/var/log/httpd? Puede configurar la ubicación de registro de apache en el archivo apache.conf. esto debería ubicarse en algún lugar en/etc/httpd/ – hiasl86

9

Funciona para mí. ¿Cómo registrar todos los errores php en un archivo de registro?

Apenas añada la línea siguiente a /etc/php.ini a registrar los errores en el archivo especificado - /var/log/php-scripts.log

vi /etc/php.ini 

Modificar error_log Directiva

error_log = /var/log/php-scripts.log 

Hacer seguro display_errors desactivada (sin errores a los usuarios finales)

display_errors = Off 

Guardar y cerrar el archivo. Reinicie el servidor web:

/etc/init.d/httpd restart 

¿Cómo registro errores en syslog o en el registro de eventos de Windows Server?

Modificar error_log de la siguiente manera:

error_log = syslog 

Cómo ver los registros?

Login using ssh or download a log file /var/log/php-scripts.log using sftp: 
$ sudo tail -f /var/log/php-scripts.log 
+0

¿Por qué debería asegurarme de que display_errors esté desactivado? Seguramente esto no debería afectar el registro de errores, ¿verdad? – User

+0

Como se indica en la respuesta, 'display_errors' determina si los errores se muestran * al usuario final * (por ejemplo, en la página web procesada), por lo que no, no afecta el registro. http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors – cincodenada

1

estoy usando OS Cent 6,6 con Apache y para mí error de registro de archivos están en

/usr/local/apache/log

15

Puede utilizar "lsof" a encuentre archivos de registro abiertos en su sistema. lsof solo te da una lista de todos los archivos abiertos.

Use grep para "log" ... use grep nuevamente para "php" (si el nombre del archivo contiene las cadenas "log" y "php" como en "php_error_log" y usted es usuario root encontrará los archivos sin conocer la configuración).

 [email protected]:~# lsof |grep log 
     ... snip 
     gmain  12148 12274  user 13r  REG    252,1 32768  661814 /home/user/.local/share/gvfs-metadata/home-11ab0393.log 
     gmain  12148 12274  user 21r  REG    252,1 32768  662622 /home/user/.local/share/gvfs-metadata/root-56222fe2.log 
     gvfs-udis 12246    user mem  REG    252,1 55384  790567 /lib/x86_64-linux-gnu/libsystemd-login.so.0.7.1 
==> apache 12333    user mem  REG    252,1 55384  790367 /var/log/http/php_error_log** 
     ... snip 

 [email protected]:~# lsof |grep log |grep php 
     **apache 12333    user mem  REG    252,1 55384  790367 /var/log/http/php_error_log** 
     ... snip 

ver también este artículo en la búsqueda de los archivos de registro abiertos: Find open logfiles on a linux system

+0

esta es una gran manera de encontrar archivos de registro – Alp

4

en CentOS con cPanel instalado en mis registros fueron:

/usr/local/apache/logs/error_log

a seguir: tail -f /usr/local/apache/logs/error_log

0

Esta es una respuesta preferible en la mayoría de los casos de uso, ya que le permite desacoplar ejecución del software desde el conocimiento directo de la plataforma de servidor, que mantiene su código mucho más portátil.Si está haciendo un montón de cron/cgi, puede que esto no ayude directamente, pero puede establecerse en una configuración en el tiempo de ejecución web de la que se extraen los scripts cron/cgi para mantener constante la ubicación del registro en ese caso.


Usted puede obtener el archivo de registro actual asignado de forma nativa a php en cualquier plataforma en tiempo de ejecución mediante el uso de:

ini_get('error_log'); 

Esto devuelve el valor distribuido directamente al binario PHP por el servidor web, que es lo lo desea en el 90% de los casos de uso (con la excepción evidente es cgi). Cgi generalmente se registrará en esta misma ubicación como el cliente del servidor web http, pero no siempre.

También querrá comprobar que es escribible antes de confirmar nada para evitar errores. El archivo conf que define su ubicación (normalmente apache.conf globalmente o vhosts.conf por cada dominio), pero conf no garantiza que los permisos de archivo permitan el acceso de escritura en tiempo de ejecución.

Cuestiones relacionadas