2011-06-24 7 views
6

Tengo un script que está programado para ejecutarse en crontab. Noté que no podía ver los errores de php en ningún lado. Quería poder ver los errores de php conectados en/var/log/syslog o en otro lugar. Intenté configurar mi php.ini para registrar los errores en /var/log/php-errors.log, verifiqué los permisos y reinicié el servicio de apache, todavía no hay registros.cómo obtener errores de php para mostrar en syslog

+0

¿Qué puso en php.ini? 'error_logue y' log_errors' y 'error_reporting' son los Big 3 para iniciar sesión en el archivo. –

+0

error_log = /var/log/php_errors.log, log_errors = Activado y error_reporting = E_ALL & ~ E_DEPRECATED – madkris24

+0

¿La cuenta bajo la que se ejecuta tiene permisos de escritura en/var/log y en php-errors.log en particular? –

Respuesta

2

Hay dos cuestiones a tener en cuenta:

En primer lugar, PHP CLI utiliza un php.ini diferente que la versión de PHP que se ejecuta a través de Apache. Asegúrese de editar el error_log en la versión CLI.

En segundo lugar, asegúrese de que el archivo de registro pueda ser escrito por el usuario que ejecuta cron. Por lo general, su cuenta de usuario no puede escribir en el archivo de registro, por lo que puede necesitar editar los permisos.

+0

+1 para señalar la primera declaración – madkris24

+1

Al iniciar sesión en syslog no escribe archivos. El daemon syslog sí. Esta respuesta no tiene sentido. – itsafire

3

Pruebe error_log = syslog en su php.ini.

6

tengo esto en mi archivo /etc/php5/cli/php.ini (yo uso Debian; estoy asumiendo es el mismo para cualquier cosa que esté utilizando) y escribe a cabo todos los errores de cron a/var/log/messages:

error_reporting = E_ALL & ~E_NOTICE 
display_errors = Off 
display_startup_errors = Off 
log_errors = On 
log_errors_max_len = 0 
ignore_repeated_errors = Off 
ignore_repeated_source = Off 
report_memleaks = On 
track_errors = Off 
error_log = syslog 
1

En Ubuntu 16.04, el/dev/log es propiedad del grupo mysyslog (como se define por systemd). Entonces, para que apache2/php pueda escribir en syslog, debe agregar el usuario www-data al grupo mysyslog: addgroup www-data mysyslog

Cuestiones relacionadas