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 @   阿怪11  阅读(704)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示