Logs de erros do Apache - como visualizar como página da web (para servidor de intranet interno) quando o acesso root é normalmente?

Logs de erros do Apache - como visualizar como página da web (para servidor de intranet interno) quando o acesso root é normalmente?

Gostaria de poder exibir o error_log como uma página da web para que um colega (sem acesso root) possa visualizá-lo para solucionar problemas de desenvolvimento de PHP.

Na minha máquina CentOS 5.x, o log de erros está em: /var/log/httpd/error_log e os diretórios são apenas para acesso root.

Eu escreveria um script CGI para exibir o log, mas como é executado no processo Apache, não é root, portanto o arquivo de log não pode ser acessado. (Tentei). O que me intriga é que de alguma forma o Apache pode gravar nele para registrar erros, mesmo que os diretórios que os contêm sejam de acesso root.

Como eu poderia alcançar meu objetivo? Ou você pode sugerir uma alternativa, por favor?

Responder1

Na verdade, provavelmente não usaria minha outra resposta em algumas situações, mas vou mantê-la aí para referência.

Se o seu colega recebeu seu próprio VirtualHost, eu configuraria esse virtualhost para gerar seus logs em um diretório diferente, para que eles vissem apenas erros em seu sistema:

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

Alternativamente, se os arquivos .htaccess estiverem habilitados, faça com que eles simplesmente enviem seus logs de erros php para um local desejado, por exemplo:

/caminho/para/webroot/.htaccess:

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

Responder2

você pode alterar as permissões no arquivo ... caso contrário, você pode ter um cron job que é executado a cada minuto fazendo um rsync do arquivo de log do Apache para um arquivo diferente (onde você pode definir permissões para leitura) e depois exibi-lo no página da Internet.

também existem maneiras de alterar o mecanismo de log do Apache, isso depende da sua capacidade de alterar a configuração.

Responder3

Eu mudaria as permissões no diretório /var/log/httpd para resolver o problema de acesso aos arquivos do console.

adicione um novo grupo e adicione o usuário a ele:

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

ou se você estiver satisfeito com qualquer usuário em seu sistema visualizando os logs, apenas:

chmod go+rx /var/log/httpd

Faça o que fizer, as permissões originais serão redefinidas se você atualizar o httpd. Não deveria mudar de outra forma.

Além disso, a razão pela qual o Apache pode gravar nos logs com as permissões padrão é porque os arquivos de log são abertos pelo Apache enquanto ele é executado como root. Assim que o apache estiver totalmente carregado, ele mudará seu usuário para apache, mas continuará com arquivos de log abertos.

informação relacionada