Вкратце: как я могу включить одни и те же настройки в несколько пулов 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]
раздел не работает.
Спасибо за любое предложение.
После проб и ошибок я обнаружил, что вы можете безопасно использовать 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
во время выполнения
Надеюсь, это может быть полезно кому-то еще.