Docker中PHP-FPM容器无法记录日志

最近遇到一个奇怪的问题,在docker的php容器中配置了启用慢日志:

catch_workers_output = yes
slowlog = /var/log/dnmp/php.slow.log
request_slowlog_timeout = 1s

但是日志文件总是没记录,一直是空的。

最后在serverfault.com上找到答案:

在Linux系统中,PHP-FPM使用SYS_PTRACE跟踪worker进程

但是docker容器默认又不启用这个功能,所以就导致了这个问题。

知道了问题所在,解决起来就快了。

如果用命令行,在命令上加上:

--cap-add=SYS_PTRACE

如果用docker-compose.yml文件,在服务中加上:

php:
#...
cap_add:
- SYS_PTRACE
#...

参考资料:

  1. PHP slowlog empty even though PHP-FPM says it’s logging
以上是Docker中PHP-FPM容器无法记录日志的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>