泊坞窗容器中的php slowlog导致ptrace错误

我有一个AWS Linux主机运行一个centos 7 docker容器,其中运行5.5.25和php-fpm。 PHP通过端口9000暴露在Docker容器之外,并向nginx服务器提供请求。 这个设置一直工作正常,但是当我最近打开php-fpm slowlog来尝试和debugging一些慢代码,我无法让PHPlogin缓慢的脚本。 我在/etc/php-fpm.d/www.conf中设置了以下内容:

request_slowlog_timeout = 5s slowlog = /var/www/log/php-fpm-slow.log 

和/var/www/log/php-fpm-slow.log由拥有777权限的www用户拥有。 每当一个缓慢的脚本运行时,以下是logging到php错误日志。

 [07-Jul-2015 07:33:34] ERROR: failed to ptrace(ATTACH) child 18: Operation not permitted (1) [07-Jul-2015 07:33:34] WARNING: [pool www] child 18, script '/var/www/src/index.php' (request: "GET /index.php") executing too slow (5.700050 sec), logging 

我从中得出,5秒的request_slowlog_timeout实际上正在触发,但由于某种原因,日志不能被生成。

我已经看到类似但不完全相同的问题,build议修改/etc/sysctl.d/10-ptrace.conf或/ proc / sys / kernel / yama / ptrace_scope。 不幸的是,在我的主机AWS Linux或容器Centos 7操作系统中,这些文件都不存在。

有没有人有任何想法可能会导致这个问题,或者我可以采取什么步骤进一步debugging?

我终于明白了这一点。 你需要给Docker容器使用ptrace的能力。 简单的添加–cap-add SYS_PTRACE到docker run命令为我解决了这个问题。