Registros de errores de Apache: ¿cómo verlos como una página web (para el servidor de intranet interno) cuando normalmente solo se accede a la raíz?

Registros de errores de Apache: ¿cómo verlos como una página web (para el servidor de intranet interno) cuando normalmente solo se accede a la raíz?

Me gustaría poder mostrar error_log como una página web para que un colega (sin acceso de root) pueda verlo para solucionar problemas de su desarrollo PHP.

En mi máquina CentOS 5.x, el registro de errores está en: /var/log/httpd/error_log y los directorios son solo acceso raíz.

Escribiría un script CGI para mostrar el registro, pero como se ejecuta en el proceso de Apache, no es root, por lo que no se puede acceder al archivo de registro. (Lo intenté). Lo que me desconcierta es que de alguna manera Apache puede escribirle para registrar errores a pesar de que los directorios que lo contienen tienen acceso raíz.

¿Cómo podría lograr mi objetivo? ¿O puede sugerir una alternativa por favor?

Respuesta1

En realidad, probablemente no usaría mi otra respuesta en algunas situaciones, pero la dejaré ahí como referencia.

Si a su colega se le ha asignado su propio VirtualHost, configuraría ese virtualhost para que envíe sus registros a un directorio diferente, de modo que solo vea errores para su sistema:

<VirtualHost *:80>
    ServerName colleagues.vhost.com
    DocumentRoot ...
    ...
    ErrorLog /home/user/errorlog-colleagues.vhost.com
</VirtualHost>

Alternativamente, si los archivos .htaccess están habilitados, haga que simplemente envíen sus registros de errores de PHP a la ubicación que deseen, por ejemplo:

/ruta/a/webroot/.htaccess:

php_value error_log /home/user/phperrorlog-colleagues.vhost.com

Respuesta2

puede cambiar los permisos en el archivo... si no, puede tener un trabajo cron que se ejecute cada minuto haciendo un rsync desde el archivo de registro de Apache a un archivo diferente (donde puede establecer permisos para leer) y luego mostrarlo en el Página web.

También hay formas de cambiar el mecanismo de registro de Apache, depende de su capacidad para cambiar la configuración.

Respuesta3

Cambiaría los permisos en el directorio /var/log/httpd para resolver el problema de acceder a los archivos desde la consola.

agregue un nuevo grupo y agregue el usuario a él:

groupadd apache-logs
usermod -a -G apache-logs user
chgrp apache-logs /var/log/httpd
chmod g+rx /var/log/httpd

o si está satisfecho con que algún usuario de su sistema vea los registros, simplemente:

chmod go+rx /var/log/httpd

Hagas lo que hagas, se restablecerán los permisos originales si actualizas httpd. De lo contrario no debería cambiar.

Además, la razón por la que Apache puede escribir en los registros con los permisos predeterminados es porque Apache abre los archivos de registro mientras se ejecuta como root. Tan pronto como Apache esté completamente cargado, cambiará su usuario a Apache, pero seguirá teniendo archivos de registro abiertos.

información relacionada