在几个php5-fpm池中包含常见的configuration

不久之后,我怎样才能在多个php-fpm池中包含相同的设置,而不必为每个池重复这些设置?

细节

在php5-fpm中有全局指令和每个池指令。 在所有示例和文档中,每个池都具有所有必需的设置,例如

[www] user = $pool group = $pool listen = 127.0.0.1:9001 listen.owner = $pool listen.group = $pool pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 30s chdir = /var/www/$pool [www2] user = $pool group = $pool listen = 127.0.0.1:9002 listen.owner = $pool listen.group = $pool pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 30s chdir = /var/www/$pool 

正如你所看到的,大部分的configuration都是一样的,所以我想知道是否有一种方法可以把这个configuration放在一个所有池都可以隐式地或明确地包含它们的地方。

只是将它们放在[Global]部分的底部不起作用。

谢谢你的任何build议。

经过试验和错误之后,我发现你可以安全地使用include指令去做, 包括设置:-)

我创build了一个额外的/etc/php5/fpm/common.conf文件:

 user = $pool group = $pool listen.owner = $pool listen.group = $pool pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 30s chdir = /var/www/$pool 

现在我所有的游泳池都可以像这样简单:

 [www] listen = 127.0.0.1:9001 include = /etc/php5/fpm/common.conf [www2] listen = 127.0.0.1:9002 include = /etc/php5/fpm/common.conf 

补充笔记:

  • 是的,你必须指定公共文件的完整path,因为fpm进程的当前path不是pool.d文件夹

  • 是的,所有的插值都完成了,所以$pool在运行时变成wwwwww2

希望这对其他人也有用。