简而言之:如何在多个 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
如您所见,大多数配置都是相同的,所以我想知道是否有办法将该配置放在所有池都可以隐式或显式包含它们的地方。
仅将它们放在部分底部[Global]
是行不通的。
感谢您的任何建议。
答案1
经过反复试验,我发现你可以安全地使用该include
指令,包括设置 :-)
我创建了一个附加/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
补充笔记:
是的,您必须指定公共文件的完整路径,因为 fpm 进程的当前路径不是文件
pool.d
夹是的,所有插值都已完成,因此在运行时
$pool
变为www
或www2
希望这对其他人也有用。