1. 程式人生 > 其它 >Docker下php-fpm502 或者504問題排查

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擴充套件失效需要重新安裝擴充套件