Tendo que personalizar a configuração do pool php-fpm de um novo servidor, pergunto-me se é possível / permitido / recomendado ter um novo arquivo de pool, cujo nome é alfabético após o original, que possui apenas valores que substituem a configuração inicial.
A configuração original está /etc/php/7.0/fpm/pool.d
nomeada www.conf
.
Parece que, de acordo com as páginas relacionadas à instalação, os engenheiros modificam diretamente o original (salvando uma cópia dos valores iniciais). Por exemplo
[www]
...
user www-data
group www-data
pm.max_children 2
dá após modificação
[www]
...
user myapp ; was www-data
group myapp ; was www-data
pm.max_children 8 ; was 2
Mas parece que pode ser uma tarefa a ser repetida após a próxima atualização do php-fpm (além disso, a configuração está em um 7.0
caminho, isso é preocupante).
Em vez de modificar o arquivo original, eu gostaria de mantê-lo inalterado e adicionar outro, digamos wwwmyapp.conf
que declararia o mesmo pool e possuísse apenas os valores que foram alterados
no wwwmyapp.conf
[www] ; same pool!
user myapp
group myapp
pm.max_children 8
in pool.d
, lista de arquivos
www.conf
wwwmyapp.conf
como em php-fpm.conf
todos os arquivos conf do conjunto são carregados, os valores de wwwmyapp
serão lidos após os de www
(no mesmo www
conjunto) e devem substituir os primeiros valores.
- Parece funcionar em alguns testes e nenhum erro foi relatado, mas funcionará o tempo todo e para todos os valores?
- Em vez disso, devemos substituir o arquivo de configuração diretamente?
Não foi possível encontrar uma resposta em nenhum documento, nem mesmo no php.net.
fonte
Respostas:
Não foi possível encontrar uma confirmação "oficial" de outra fonte, mas aqui estão alguns resultados depois de fazer uma pesquisa:
Analisando o código fonte
php7.0-fpm
e, mais especificamentefpm-conf.c
, parece quephp-fpm.conf
é lido primeiro [ fpm_conf_load_ini_file ()],include
diretivas são lidas em ordem, fornecendo uma lista de arquivos graças a glob () ,include
terá uma chamada recursiva para a função de processamento inclui eGLOB_NOSORT
opção)Portanto, podemos assumir - pelo menos nesta versão, mas é improvável que isso mude em breve, considerando o código atual - que é seguro organizar os
pool.d
arquivos de configuração do diretório em ordem alfabética; qualquer valor gravado anteriormente sendo substituído por uma entrada com o mesmo nome lida depois.Temos uma maneira limpa de lidar com arquivos de configuração
php-fpm
, mantendo os de distribuição intocados e adicionando arquivos personalizados com nome alfabeticamente maior que os compactados, que contêm as poucas opções que precisam ser alteradas.fonte
[global]
seção por exemploemergency_restart_threshold
. Testado em php7.1-fpm ubuntu (servidor 18).www
a única maneira de substituir, use nomes de arquivos pool.d comowwwsomething
ou começando comx
,y
ouz
.Caso você possua algum arquivo como php-overrides.ini, copie-o para
/etc/php/7.0/fpm/conf.d/99-overrides.ini
Prefixo 99 é devido à ordem de execução
fonte
conf.d
substituições não podem substituirphp-fpm.conf
variáveis (somente empool.d/
sub[global]
) (observação para o futuro)