Habilita o log de erros no PHP-FPM 7 com Nginx?

3

Isso é essencialmente o mesmo que estas perguntas:

link

Nginx não registra erros de PHP

MAS as respostas não parecem estar funcionando no Ubuntu 16.04 com o PHP 7.

/etc/php/7.0/fpm/pool.d/www.conf :

catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on

/var/log/fpm-php.www.log existe e é de propriedade de www-data .

/etc/php/7.0/fpm/php.ini :

log_errors = On

Bloco Servidor do Nginx Virtual Host

access_log /var/log/myapp/access.log;
error_log /var/log/myapp/error.log error;

/var/log/myapp/access.log existe e é de propriedade de www-data .

Mas quando ocorre um erro, não recebo um erro em nenhum dos arquivos de log especificados e não o encontro em nenhum outro lugar.

Eu passei por todas as sugestões sobre a outra pergunta, mas não encontrei nenhuma resposta que funcionasse. Eu estou supondo que algo mudou desde que essas respostas foram postadas. Alguma sugestão?

    
por Nick 08.02.2017 / 07:45

1 resposta

3

O comentário acima < um href="https://serverfault.com/users/279840/the-nuts"> the_nuts ajudou a resolver isso para mim. O diretório e o arquivo não existiam.

Para diagnosticar, eu adicionei:

print("\n\n<br><br>log_errors: ".ini_get('log_errors'));
print("\n\n<br><br>error_log: ".ini_get('error_log'));

na parte superior do meu código (um plug-in do WordPress). Isto é produzido:

log_errors: 1
error_log: /usr/local/etc/php-fpm.d/fpm.log 

No terminal eu usei ls para aprender que o arquivo e o diretório estavam faltando, por exemplo

ls /usr/local/etc/php-fpm.d/fpm.log
ls /usr/local/etc/php-fpm.d/

produzido

ls: cannot access '/usr/local/etc/php-fpm.d/fpm.log': No such file or directory
ls: cannot access '/usr/local/etc/php-fpm.d': No such file or directory

Para corrigir: alterei o diretório para / usr / local / etc , criei o diretório, o arquivo e, em seguida, configurei o proprietário para www-data: www-data

cd /usr/local/etc
sudo mkdir php-fpm.d
cd php-fpm.d
sudo touch fpm.log
sudo chown -R www-data:www-data fpm.log

Se o arquivo e o diretório existirem, execute

ls fpm.log -l

e se owner for root:

-rw-r--r-- 1 root root 0 Jun 23 19:52 fpm.log

executar

sudo chown -R www-data:www-data fpm.log

para dar a propriedade do servidor web e acesso de gravação

-rw-r--r-- 1 www-data www-data 12848 Jun 23 20:07 fpm.log
    
por 23.06.2017 / 22:10