Incluir configuração comum em vários conjuntos php5-fpm

2

Logo: como posso incluir as mesmas configurações em vários pools php-fpm sem repeti-los para cada pool?

Detalhes

No php5-fpm, existem diretivas globais e por conjunto . Em todos os exemplos e documentações, cada pool possui todas as configurações necessárias, por exemplo,

[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

Como você pode ver, a maior parte da configuração é a mesma, então me pergunto se existe uma maneira de colocar essa configuração em um local onde todos os pools possam incluí-los implícita ou explicitamente.

Basta colocá-los na parte inferior da seção [Global] não está funcionando.

Obrigado por qualquer sugestão.

    
por Francesco Abeni 07.12.2015 / 17:11

1 resposta

7

Após tentativas e erros, descobri que você pode usar com segurança a diretiva include para, bem, configurações include : -)

Eu criei um arquivo /etc/php5/fpm/common.conf adicional:

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

E agora todos os meus pools podem ser tão simples assim:

[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

Notas adicionais:

  • sim, você precisa especificar o caminho completo para o arquivo comum, porque o caminho atual para o processo de fpm NÃO é a pasta pool.d

  • sim, toda a interpolação está concluída, por isso $pool torna-se www ou www2 em tempo de execução

Espero que isso também possa ser útil para outra pessoa.

    
por 07.12.2015 / 17:57