Docker下php-fpm502 或者504问题排查

背景

公司机器使用Docker部署多个项目运行,偶发随机某个项目出现502/504,排查日志无果,在php-fpm中配置了慢查询日志。
等再次出现502/504时发现日志中有这么一个错误

failed to open /proc/13/mem: Permission denied (13)

解决

百度后得知

大神笔记

最近遇到一个奇怪的问题,在docker的php容器中配置了启用慢日志:
slowlog = /tmp/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

portainer 修改方式

注:重新部署容器后会导致原来安装的php扩展失效需要重新安装扩展

posted @ 2022-01-17 20:19  阿怪11  阅读(755)  评论(0)    收藏  举报