2013-09-29 57 views
4

我運行nginx和PHP 5.5,並且當傳遞的字符串很長時,我所有的error_log消息都會被截斷。PHP Nginx error_log越來越截斷

我已更新我的php.ini文件,並將日誌最大長度從1024增加到0(無最大值),並且仍在發生。

+0

如何琴絃越來越截斷,在哪個位置?你能舉一個例子嗎? –

+0

你重新啓動你的PHP進程(可能是http服務器或fcgi容器)?只有這樣才能重新加載已更改的'php.ini'文件。 – arkascha

+0

我已經重新啓動了它的php-fpm,並通過調用phpinfo()來查看所做的更改,問題仍然存在。 – vutran

回答

4

如果您希望日誌行超過2048個字節,則需要重新編譯Nginx。 From http://wiki.nginx.org/HttpLuaModule

Nginx內核中的錯誤消息存在硬編碼的長度限制。最多2048個字節,包括後面的換行符和前導時間戳。您可以通過修改Nginx源代碼樹中src/core/ngx_log.h文件中的NGX_MAX_ERROR_STR宏定義手動修改此限制。如果消息大小超過此限制,則Nginx核心將自動截斷消息文本。

+0

對不起,我忘了提及nginx和php-fpm通過自制軟件安裝在Mac OS X上。 – vutran

1

1024個字符的限制是在php-fpm中硬編碼的,您需要重新編譯它。

如果你想要超過2048個字符,你也需要重新編譯nginx。

有補丁完整的解決方案爲8192個字符的位置: https://forums.freebsd.org/threads/56543/