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 = Off
no 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_handler
conjunto).
Verhttps://laracasts.com/discuss/channels/lumen/lumen-debug-mode-not-showing-stack-tracepara mais informações