Erros PHP não são armazenados no CentOS Server

2

Eu apenas ajustei o arquivo php.ini no meu VOS CentOS 64 Bits em /etc/php.ini para registrar erros no PHP:

cat /etc/php.ini | grep php-errors.log
error_log = /var/log/php-errors.log

Eu também tenho log_errors = on

Eu criei o arquivo de log em / var / log / e é o CHMOD 644. Também ativei o relatório de erros E_ALL

cat /etc/php.ini | grep error_reporting
; error_reporting
error_reporting = E_ALL
; Eval the expression with current error_reporting().  Set to true if you want
; error_reporting(0) around the eval().

Depois reiniciei o daemon httpd. Quando eu adiciono um arquivo através do carregador do WordPress, vejo que ele não está carregado por causa de um problema de permissão

“cannot-open-file.png” has failed to upload due to an error
Unable to create directory wp-content/uploads/2014/05. Is its parent directory writable by the server?

, mas não é armazenado como um erro em php-errors.php:

pwd
/var/log

ls -l | grep php
-rw-r--r-- 1 root  root        0 May  6 06:21 php-errors.log

Todos os meus outros registros em /var/log/httpd também são root:root , portanto, presumo que a criação de log funcionaria. E quando eu ajustei as permissões do arquivo para apache:apache como sugerido, ainda não tinha erros no arquivo de log. Até mesmo adicionar log de erros ao .htaccess não ajudou.

Eu também verifiquei o PHP.ini usando phpinfo() . O único ini carregado é o que eu ajustei em /etc/php.ini e o usuário e grupo que está usando é apache - User/Group apache(48)/48 . O que estou perdendo?

PS Pode haver problemas com o diretório dos arquivos de log, conforme sugerido aqui Can não configurar o log de erros do PHP Estou verificando mais informações sobre isso.

    
por rhand 06.05.2014 / 05:10

3 respostas

1

Aparentemente, também precisei de display_errors = on . Eu pensei que isso era para exibição de erro na tela, mas é para o log de erros, bem parece.

    
por 27.02.2015 / 07:51
3

De documentação oficial , você deve alterar a permissão de > /var/log/php-errors.log para que o arquivo seja gravável pelo usuário do apache (por exemplo, www, www-data, etc.)

#chown www:www 

error_log string

Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI. See also error_log().

    
por 06.05.2014 / 05:18
3

Se você tiver problemas para gravar / ler arquivos, consulte a lista completa nesta resposta: link

Basicamente, se você quiser que o apache escreva em um arquivo error_log diferente de syslog, o apache precisa ter permissões para gravar nele, e se o arquivo ainda não existir, o apache também precisa de permissões de escrita na pasta pai.

Nada disso se aplica se você está tentando ler / escrever ou definir seu error_log para a pasta / tmp a partir do CentOS 7. A resposta aqui: link Referenciando este blog explica como o systemd não permite isso.

    
por 01.11.2014 / 05:01