不久之后,我怎样才能在多个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在运行时变成www或www2
希望这对其他人也有用。