Erros de saída PHP-FPM a serem tratados pelo aplicativo php com nginx

Erros de saída PHP-FPM a serem tratados pelo aplicativo php com nginx

Estou tendo dificuldades para configurar um contêiner docker com phpfpm para adiar o tratamento de erros para meu aplicativo php.

Quaisquer exceções fatais estão sendo processadas pelo rastreamento de pilha xdebug (http://xdebug.org/docs/stack_trace) como 200 OK, porém quero que os erros sejam tratados pelo manipulador php (quero reestruturar o erro como json e definir o código de resposta como 500).

Se eu configurar display_errors = Offno php.ini recebo um código 500 que é bom, mas nenhum erro passou para a camada de aplicação (tela branca da morte).

Para ambos os casos acima, o registro está funcionando conforme o esperado.

Para ser claro, tudo está funcionando normalmente (o caminho feliz está funcionando bem), mas quando causo intencionalmente um erro fatal (isso pode acontecer no futuro), tenho problemas.

Como devo configurar o phpfpm/nginx para garantir que os erros fatais sejam tratados pelo aplicativo php?

Configuração PHP-FPM (dockerfile):https://github.com/nglume/docker-phpfpm/blob/master/Dockerfile

configuração do nginx:https://github.com/nglume/docker-nginx/blob/master/config/nginx.conf

host:https://github.com/nglume/nglume/blob/master/vhosts/nginx/nglume-api.local.conf

Obrigado!

Responder1

Acontece que o problema era que uma combinação de status do pool phpfpm php_flag[display_errors]estava ativadaeo aplicativo lumen não tinha um manipulador registrado register_shutdown_function(ele tinha um set_error_handlerconjunto).

Verhttps://laracasts.com/discuss/channels/lumen/lumen-debug-mode-not-showing-stack-tracepara mais informações

informação relacionada