Ошибки вывода PHP-FPM должны обрабатываться приложением php с помощью nginx

Ошибки вывода PHP-FPM должны обрабатываться приложением php с помощью nginx

У меня возникли трудности с настройкой контейнера Docker с phpfpm для передачи обработки ошибок моему php-приложению.

Любые фатальные исключения обрабатываются трассировкой стека xdebug (http://xdebug.org/docs/stack_trace) как 200 OK, однако я хочу, чтобы ошибки обрабатывались обработчиком php (я хочу реструктурировать ошибку как json и установить код ответа 500).

Если я устанавливаю это display_errors = Offв php.ini, то получаю код 500, что хорошо, но ошибка не передается на уровень приложения (белый экран смерти).

В обоих случаях, описанных выше, ведение журнала работает так, как задумано.

Если говорить точнее, все функционирует нормально (happy path работает нормально), но когда я намеренно вызываю фатальную ошибку (это может произойти в будущем), у меня возникают проблемы.

Как настроить phpfpm/nginx, чтобы гарантировать обработку критических ошибок приложением php?

Конфигурация PHP-FPM (dockerfile):https://github.com/nglume/docker-phpfpm/blob/master/Dockerfile

Конфигурация nginx:https://github.com/nglume/docker-nginx/blob/master/config/nginx.conf

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

Спасибо!

решение1

Оказалось, что проблема была в комбинации состояния пула phpfpm php_flag[display_errors]: включеноиу приложения lumen не было зарегистрированного обработчика register_shutdown_function(но был set_error_handlerнабор).

Видетьhttps://laracasts.com/discuss/channels/lumen/lumen-debug-mode-not-showing-stack-traceдля получения дополнительной информации

Связанный контент