Com o FPM, pode-se executar vários conjuntos (pools) de processos com configurações diferentes.
Essas são as configurações que podem ser otimizadas por cada conjunto.
-
listen
string
-
O endereço onde as requisições FastCGI serão aceitas. Sintaxes válidas são:
'en.dere.ço.ip:porta', 'porta', '/caminho/para/soquete/unix'. Esta opção é
obrigatória para cada conjunto.
-
listen.backlog
int
-
Define o acúmulo de listen(2). O valor de -1
significa o máximo em sistemas BSD;.
Valor padrão: -1
(FreeBSD ou OpenBSD) ou 511
(Linux e outras plataformas).
-
listen.allowed_clients
string
-
Lista de endereços IPv4 ou IPv6 de clientes FastCGI que estão autorizados a conectar. Equivalente
à variável de ambiente FCGI_WEB_SERVER_ADDRS no FastCGI original do PHP (5.2.2+).
Só faz sentido com um soquete de escuta TCP. Cada endereço deve ser separado por uma vírgula.
Se este valor for deixado em branco, conexões serão aceitas a partir de qualquer endereço IP.
Valor padrão: não definido (qualquer endereço IP aceito).
-
listen.owner
string
-
Define permissões para soquete Unix, se utilizado. No Linux, permissões de
leitura/gravação devem ser definidas de forma a permitir conexões a partir de um servidor
web. Muitos sistemas derivados do BSD permitem conexões independentemente das permissões.
Valores padrão: usuários e grupos são definidos como o usuário que está executando, o modo é definido como 0660.
-
listen.group
string
-
Veja listen.owner
.
-
listen.mode
string
-
Veja listen.owner
.
-
listen.acl_users
string
-
Quando o suporte ao Access Control Lists POSIX for suportado, pode-se configurá-lo utilizando esta opção.
Ao configurá-lo, listen.owner
e listen.group
serão ignorados. Seu valor é uma lista de nomes de usuários, separados por vírgula.
-
listen.acl_groups
string
-
Veja listen.acl_users
.
Seu valor é uma lista de nomes de grupo, separados por vírgula.
-
user
string
-
Usuário Unix dos processos FPM. Esta opção é obrigatória.
-
group
string
-
Grupo Unix dos processos FPM. Se não for definido, o grupo padrão do usuário será
utilizado.
-
pm
string
-
Define como o gerenciador de processos controlará o número de processos
filhos. Valores possíveis: static
, ondemand
ou
dynamic
.
Esta opção é obrigatória.
static
- o número de processos filho é fixo (pm.max_children
).
ondemand
- os processos são criados sob demanda (quando solicitado,
em oposição a "dynamic", onde pm.start_servers
são iniciados
quando o serviço é iniciado.
dynamic
- o número de processos filhos é definido dinamicamente com base nas
seguintes diretivas: pm.max_children
, pm.start_servers
,
pm.min_spare_servers
e pm.max_spare_servers
.
-
pm.max_children
int
-
O número de processos filhos a serem criados quando pm
está definido como
static
e o número máximo de processos filhos a serem criados
quando pm
está deinido como dynamic
. Esta
opção é obrigatória.
Esta opção define o limite para o número de solicitações simultâneas que
serão servidas. Equivalente à directiva ApacheMaxClients com
mpm_prefork e à variável de ambiente PHP_FCGI_CHILDREN no
FastCGI original do PHP.
-
pm.start_servers
int
-
O número de processos filhos criados na inicialização.
Usado apenas quando pm
é definido para dynamic
.
Valor padrão: (min_spare_servers + max_spare_servers) / 2.
-
pm.min_spare_servers
int
-
O número mínimo desejado de processos servidores ociosos. Usado apenas quando
pm
está definido como dynamic
. Também
obrigatório neste caso.
-
pm.max_spare_servers
int
-
O número máximo desejado de processos servidores ociosos. Usado apenas quando
pm
está definido como dynamic
. Também
obrigatório neste caso.
-
pm.max_spawn_rate
int
-
A taxa de criação de processos filhos simulataneamente. Utilizado apenas quando
pm
é definido para dynamic
.
Valor padrão: 32
-
pm.process_idle_timeout
mixed
-
O número de segundos após o qual um processo ocioso será encerrado.
Utilizado apenas quando pm
é configurado como ondemand
.
Unidades disponíveis: s(egundos) - padrão, m(inutos), h(oras) ou d(ias).
Valor padrão: 10s.
-
pm.max_requests
int
-
O número de solicitações que cada processo filho deve executar antes
de ressurgir. Isto pode ser útil para contornar vazamentos de memória em bibliotecas de
terceiros. Para processamento interminável de solicitação especifique '0'. Equivalente a
PHP_FCGI_MAX_REQUESTS. Valor padrão: 0.
-
pm.status_listen
string
-
O endereço no qual serão aceitas requisições de status FastCGI. Isto cria um novo conunto invisível
que pode manipular as requisições independentemente. Útil se o conjunto principal está ocupado
com requisições longas dado que é possível obter a
página de status FPM antes de terminar essas requisições
longas. A sintaxe é a mesma da diretiva listen.
Valor padrão: none.
-
pm.status_path
string
-
O URI para visualizar a página de status do FPM. Este valor precisa
começar com uma contra barra (/). Se o valor não estiver definido, nenhuma URI será reconhecida como
uma página de status. Valor padrão: none.
-
ping.path
string
-
O URI de ping para chamar a página de monitoramento do FPM. Se este valor não estiver
definido, nenhuma URI será reconhecido como uma página de ping. Isto poderia ser usado para testar
de fora que o FPM está vivo e respondendo. Observe que o valor deve
começar com uma barra (/).
-
ping.response
string
-
Esta diretiva pode ser usado para personalizar a resposta a um pedido
de ping. A resposta é formatada como text/plain com um código de resposta 200.
Valor padrão: pong.
-
process.priority
int
-
Especifica a prioridade de nice(2) a ser aplicada ao processo (somente se informado).
Esse valor pode variar de -19 (prioridade máxima) to 20 (priridade mínima).
Valor padrão: não definido.
-
process.dumpable
bool
-
Configura o sinalizador dumpable (PR_SET_DUMPABLE prctl) mesmo no caso do usuário ou
ou grupo do processo for diferente usuário do processo principal. Permite criar despejos do
núcleo do processo e rastrear o processo para o usuário do conjunto.
Valor padrão: no. Desde o PHP 7.0.29, 7.1.17 e 7.2.5.
-
prefix
string
-
Especifica um prefixo para interpretação de caminhos.
-
request_terminate_timeout
mixed
-
O tempo limite para servir uma requisição única após o qual o processo
será encerrado. Esta opção deveria ser usada quando a opção INI 'max_execution_time',
não parar a execução do script por algum motivo. Um valor de '0' significa
'Off'. Unidades disponíveis: s(egundos) - padrão, m(inutos), h(oras) ou d(ias).
Valor padrão: 0.
-
request_terminate_timeout_track_finished
bool
-
O limite de tempo configurado para
request_terminate_timeout não é disparado
depois de um fastcgi_finish_request ou
quando a aplicação terminou e funções internas de desligamento estão sendo chamadas. Esta
diretiva irá habilitar o limite de tempo incondicionalmente mesmo para esses casos.
Valor padrão: no. Desde o PHP 7.3.0.
-
request_slowlog_timeout
mixed
-
O tempo limite para servir uma requisição única após o qual um rastreamento PHP
será despejado para o arquivo 'slowlog'. Um valor de '0' significa 'Off'.
Unidades disponíveis: s(egundos) - padrão, m(inutos), h(oras) ou d(ias).
Valor padrão: 0.
-
request_slowlog_trace_depth
int
-
A profundidade do rastreamento de pilha para o registro de requisições lentas.
Valor padrão: 20. Desde o PHP 7.2.0.
-
slowlog
string
-
O arquivo de log de requisições lentas. Valor padrão:
#INSTALL_PREFIX#/log/php-fpm.log.slow
.
-
rlimit_files
int
-
Define o limite de descritores de arquivos abertos para processos filhos neste conunto. Valor padrão: valor definido pelo sistema.
-
rlimit_core
int
-
Define o limite máximo do tamanho do núcleo para processos filhos neste conjunto. Valores possíveis: 'unlimited' ou um número inteiro maior ou igual a 0.
Valor padrão: valor definido pelo sistema.
-
chroot
string
-
Realiza um chroot para este diretório na inicialização. Este valor precisa ser definido como
um caminho absoluto. Quando este valor não está definido, chroot não é usado.
-
chdir
string
-
Realiza um chdir neste diretório na inicialização. Este valor precisa ser um caminho
absoluto. Valor padrão: diretório atual ou / no caso de chroot.
-
catch_workers_output
bool
-
Redireciona stdout e stderr para o registro de erros principal. Se não estiver definido,
stdout e stderr serão redirecionadas para /dev/null de acordo com especificações FastCGI.
Valor padrão: no.
-
decorate_workers_output
bool
-
Ativa a decoração de saída dos processos quando catch_workers_output estiver ativo.
Valor padrão: yes.
Disponível desde o PHP 7.3.0.
-
clear_env
bool
-
Limpa o ambiente nos processos do FPM.
Evita que variáveis de ambiente arbitrárias alcancem os processos do FPM
limpando o ambiente neles antes que as variáveis de ambientes especificados nesta
configuração de conjunto sejam adicionadas.
Valor padrão: Yes.
-
security.limit_extensions
string
-
Limita as extensões de arquivo do script principal que o FPM permitirá a interpretação.
Isto pode evitar erros de configurações no lado do servidor web.
FPM deve ser limitado a extensões .php para evitar que usuários
maliciosos utilizem outras extensões para executar códigos php.
Valor padrão: .php .phar
-
apparmor_hat
string
-
Se o AppArmor estiver ativo, isto permite modificar o "hat".
Valor padrão: não definido.
-
access.log
string
-
O arquivo de registro de acessos.
Valor padrão: não definido.
-
access.format
string
-
O formato do registro de acessos.
Valor padrão: "%R - %u %t \"%m %r\" %s"
:
É possível passar variáveis de ambiente adicionais e atualizar as configurações do PHP de uma determinado conjunto.
Para fazer isso, precisa-se adicionar as seguintes opções no arquivo de configuração do conjunto.