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扩展失效需要重新安装扩展
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)