Назад | Перейти на главную страницу

Включите общую конфигурацию в несколько пулов php5-fpm

Вкратце: как я могу включить одни и те же настройки в несколько пулов 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 во время выполнения

Надеюсь, это может быть полезно кому-то еще.