Nginx/PHP-FPM 长日志行被截断

Jas*_*sta 11 php nginx fastcgi php-fpm fcgi

我不确定这是 Nginx 或 PHP-FPM 设置,但长日志行被截断。是否有增加最大日志行长度的设置?

小智 6

1024 个字符的限制是在 php-fpm 而非 nginx 中硬编码的。

如果你想超过 2048 个字符,你需要重新编译 nginx 和 php-fpm,否则只需要重新编译 php-fpm。

这里有一个完整的解决方案,其中包含 8192 个字符的补丁:https : //forums.freebsd.org/threads/56543/


小智 5

我推荐使用 php 7.3

来自https://www.php.net/ChangeLog-7.php

修复了错误 #69031(进入 stdout/stderr 的长消息被错误截断) - 添加了新的与日志相关的 FPM 配置选项:log_limit、log_buffering 和decorate_workers_output。


小智 4

如果您希望日志行长度超过 2048 字节,则需要重新编译 Nginx。来自http://wiki.nginx.org/HttpLuaModule

Nginx 核心中的错误消息有硬编码的长度限制。最多 2048 字节,包括尾随换行符和前导时间戳。您可以通过修改 Nginx 源代码树中 src/core/ngx_log.h 文件中的 NGX_MAX_ERROR_STR 宏定义来手动修改此限制。如果消息大小超过此限制,Nginx 核心将自动截断消息文本。