【发布时间】:2019-08-11 02:45:35
【问题描述】:
我在 nginx 后面有一个 laravel 应用程序,最近将 php 从版本 7.1 更新到 7.3(docker 映像 7.1-fpm-alpine 到 7.3-fpm-alpine)。
我使用具有render() 函数的异常来输出错误页面。 Laravel 记录异常消息并完成堆栈跟踪。
自从更新到 php 7.3 后,nginx 显示它的默认 502 错误页面并记录 [error] 11#11: *61 upstream prematurely closed FastCGI stdout while reading response header from upstream, client: [...]。 nginx中的stacktrace在2048字节后被截断。
serverfault 问题"Nginx/PHP-FPM long log lines get truncated" 表明 nginx 只处理最多 2048 个字节的错误。
在 PHP 7.1 中,堆栈跟踪已被截断。
我说得对吗,问题在于 PHP 现在记录完整的堆栈跟踪而不是截断它?
有没有办法在 PHP 中截断日志输出以返回 PHP 7.1 的行为?
【问题讨论】: