Não é possível configurar o log de erros do PHP

2

Estou executando o apache2 com o php5 no Linux Mint 13 Maya. Eu defini um host virtual e essas duas entradas lá:

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Isso produz erros e logs de acesso em var/log/apache2 .

Eu quero fazer meus erros de PHP entrarem no log de erros do PHP. No meu /etc/php5/apache2/php.ini , defini:

display_errors = On
log_errors = On
error_log = /var/log/php-errors.log
log_errors_max_len = 0
error_reporting =  E_ALL | E_STRICT

O arquivo de log /var/log/php-errors.log foi gerado, mas todos os registros foram dois avisos de que alguns módulos já foram carregados. Eu tentei comentar as diretivas de log na definição de host virtual, mas isso não mudou nada, todos os erros ainda são registrados no log do apache.

O que estou perdendo aqui?

    
por linski 15.06.2013 / 16:39

1 resposta

2

É possível que as permissões não sejam suficientes para gravar nesse arquivo; você também precisa ter certeza de que o diretório também esteja acessível.

Exemplo de como estava no meu sistema (esta era a instalação padrão do Debian wheezy):

$ ls -ld /var/log/apache2/
drwxr-x--- 2 root adm 4096 Sep  4 15:59 /var/log/apache2/
$ ls -ld /var/log/apache2/php-error.log
-rw-r--r-- 1 www-data www-data 0 Jul 23 11:07 /var/log/apache2/php-error.log

Isso não funcionou, porque o diretório contendo o php-error.log não estava acessível. Felizmente, mod_php (ou apache2?) Retorna para escrevê-lo no log de erros do VirtualHosts.

No meu caso, foi facilmente corrigível aplicando chmod o+rx /var/log/apache2/ , mas suas considerações de segurança podem variar. Após a correção:

$ ls -ld /var/log/apache2/
drwxr-xr-x 2 root adm 4096 Sep  4 15:59 /var/log/apache2/

E com essa mudança, funcionou.

PS: Primeiro, tive o mesmo problema que você teve, não consegui resolvê-lo em um dia. A pesquisa do Google não deu em nada. Pensei em escrever uma pergunta no serverfault. Enquanto preparava o título, recebi as sugestões e o seu foi o segundo hit. Percebi que escreveria uma pergunta duplicada, então pensei em escrever um comentário para a sua. Mas então eu queria escrever mais e pensar em escrever uma resposta que não resolvesse o problema, mas levasse à minha perspectiva também, talvez alguém pudesse ajudar. E enquanto preparava a resposta, descobri a solução. Isso é absolutamente fantástico sobre ... bem, qualquer coisa aqui. serverfault / stackexchange me ajudou a encontrar a solução por conta própria implicitamente com a ajuda de outras pessoas. Não pode ficar melhor, eu acho (além de resolver por conta própria).

    
por 05.09.2013 / 10:40