Docker下php-fpm502 或者504問題排查
阿新 • • 發佈:2022-01-17
背景
公司機器使用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擴充套件失效需要重新安裝擴充套件