array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'install.fpm.configuration.php', 1 => 'Configuração', ), 'up' => array ( 0 => 'install.fpm.php', 1 => 'FastCGI Process Manager (FPM)', ), 'prev' => array ( 0 => 'install.fpm.install.php', 1 => 'Instalação', ), 'next' => array ( 0 => 'install.pecl.php', 1 => 'Instalação das extensões PECL', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'install/fpm/configuration.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
FPM usa a sintaxe do php.ini para arquivos de configuração - php-fpm.conf, e arquivos de configurações de rotinas.
pid
string
Caminho para o arquivo PID. Valor padrão: nenhum.
error_log
string
Caminho para o arquivo de log de erro. Valor padrão:
#INSTALL_PREFIX#/log/php-fpm.log
.
Se configurado com "syslog", o log será enviado para o syslogd ao invés de ser escrito em uma arquivo local.
log_level
string
Nível de log de erro. Valores possíveis: alert, error, warning, notice, debug. Valor padrão: notice.
log_limit
int
Limite para tamanho das linhas para permitir mensagens de log maiores que 1024 caracteres sem quebras. Valor padrão: 1024. Disponível desde o PHP 7.3.0.
log_buffering
bool
Log sem buffering (experimental). Valor padrão: yes. Disponível desde o PHP 7.3.0.
syslog.facility
string
usado para especificar que tipo de programa está logando a mensagem. Valor Padrão: daemon.
syslog.ident
string
No início de todas as mensagens. Se possuir múltiplas instâncias do FPM rodando no mesmo servidor, pode-se modificar o valor padrão para adaptar-se às necessidades. Valor padrão: php-fpm.
emergency_restart_threshold
int
Se esse número de processos filho sair com SIGSEGV ou SIGBUS dentro
do intervalo de tempo definido pelo emergency_restart_interval
,
o FPM será reiniciado. Um valor 0 significa 'Off'. Valor padrão: 0 (desligado).
emergency_restart_interval
mixed
Intervalo de tempo utilizado por emergency_restart_interval
para determinar quando
um reinício será feito. Pode ser útil para contornar
corrupções acidentais em memória compartilhada de um acelerador.
Unidades disponíveis: s(egundos), m(minutos), h(horas), ou d(ias).
Unidade Padrão: seconds. Valor padrão: 0 (desligado).
process_control_timeout
mixed
Prazo para processos filhos para esperar uma reação em sinais de mestre. Unidades disponíveis: s(egundos), m(minutos), h(horas), ou d(ias) Unidade Padrão: seconds. Valor padrão: 0.
process.max
int
O número máximo de processos que o FPM criará. Projeto para controlar o número global de processos ao utilizar PM dinâmico em várias rotinas. Utilize com cautela. Valor padrão: 0.
process.priority
int
Especifica a prioridade nice(2) a ser aplicada ao processo mestre (se estiver configurado). O valor varia de -19 (maior prioridade) até 20 (menor prioridade). Valor padrão: não especificado.
daemonize
bool
Faz o FPM ser executado em segundo plano. Defina como 'no' para manter o FPM em primeiro plano, para fins de depuração. Valor padrão: yes.
rlimit_files
int
Configura o descritor rlimit para abertura de arquivos no processo mestre. Valor padrão: valor definido pelo sistema operacional.
rlimit_core
int
Configura o tamanho do núcleo rlimit no processo mestre. Valor padrão: 0.
events.mechanism
string
Especifica o mecanismo de eventos que o FPM utilizará. Os seguintes estão disponíveis: select, pool, epoll, kqueue (*BSD), port (Solaris). Valor padrão: não especificado (detectado automaticamente).
systemd_interval
int
Quando o FPM for compilado com integração ao systemd, especifica o intervalo, em segundos, entre a notificação ao systemd. Defina com 0 para desabilitar. Valor padrão: 10.
Com o FPM você pode executar várias rotinas de processos com configuração diferente. Essas são as configurações que podem ser otimizadas por cada rotina.
listen
string
O endereço que aceita pedidos FastCGI. Sintaxes válidas são: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Esta opção é obrigatória em cada rotina.
listen.backlog
int
Define o backlog 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 de clientes FastCGI que estão autorizados a conectar. Equivalente à variável de ambiente FCGI_WEB_SERVER_ADDRS no PHP FastCGI (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: nenhum (aceita conexões de qualquer IP).
listen.owner
string
Define permissões para socket 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 permitir conexões independentemente das permissões. Os valores padrão: usuários e grupos são definidos como o usuário que está executando, de modo está definido para 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, separada por vírgula.
listen.acl_groups
string
Veja listen.acl_users
.
Seu valor é uma lista de nomes de grupo, separada 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 do usuário padrão será utilizado.
pm
string
Escolha como o gerenciador de processos controlará o número de processos
filhos. Valores possíveis: static
, ondemand
,
dynamic
.
Esta opção é obrigatória.
static
- o número de processos filho é fixo (pm.max_children
).
ondemand
- os processos sob demanda (quando solicitado,
em oposição a dinâmica, então pm.start_servers
são iniciadas
quando o serviço é iniciado.
dynamic
- o número de processos filhos são definidos dinamicamente com base nas
seguintes diretrizes: pm.max_children
, pm.start_servers
,
pm.min_spare_servers
, pm.max_spare_servers
.
pm.max_children
int
O número de processos filhos que podem ser criados quando pm
está configurado como
static
e o número máximo de processos filhos podem ser criados
quando pm
está configurado como dynamic
. Essa
opção é obrigatória.
Esta opção define o limite para o número de solicitações simultâneas que será servida. Equivalente à directiva ApacheMaxClients com mpm_prefork e ao PHP_FCGI_CHILDREN variável de ambiente no originais PHP FastCGI.
pm.start_servers
int
O número de processos filhos criados na inicialização.
Usado apenas quando pm
é configurado em dynamic
.
Valor padrão: min_spare_servers + (max_spare_servers -
min_spare_servers) / 2.
pm.min_spare_servers
int
O número mínimo desejado de processos servidores inativos. Usado apenas quando
pm
está configurado como dynamic
. Também
obrigatório neste caso.
pm.max_spare_servers
int
O número máximo desejado de processos servidores inativos. Usado apenas quando
pm
está configurado como dynamic
. Também
obrigatório neste caso.
pm.max_spawn_rate
int
O número de processos para inicializar de uma vez. Utilizado apenas quando
pm
é configurado para dynamic
.
Valor padrão: 32
pm.process_idle_timeout
mixed
O número de segundos após qual um processo parado será encerrado.
Utilizado apenas quando pm
é configurado como ondemand
.
Unidades disponíveis: s(segunfos)(default), m(minutos), h(horas), or d(dias).
Valor padrão: 10s.
pm.max_requests
int
O número de solicitações de cada processo filho deve ser executado antes respawning. Isto pode ser útil para contornar falhas de memória de bibliotecas de terceiro partido. Para o processamento de pedido interminável especificar '0 '. equivalente a PHP_FCGI_MAX_REQUESTS. Valor padrão: 0.
pm.status_listen
string
O endereço no qual o FastCGI acessa requisições de status. Isto cria um novo pool invisível que sustenta essas requisições independentemente. Útil se o pool principal está ocupado com requisições longas dado que é possível obter a página de status FPM enquanto rodando requisições longas. A sintaxe é a mesma da opçãolisten. Valor padrão: vazio.
pm.status_path
string
O URI para visualizar a FPM status page. Este valor precisa começar com uma contra barra (/). Se o valor estiver vazio, nenhuma URI será reconhecida como uma página de status. Valor padrão: vazio.
ping.path
string
O URI ping para chamar a página de FPM de monitoramento. Se este valor não é definido, nenhuma URI será reconhecido como uma página de ping. Isto poderia ser usado para testar de fora que FPM está vivo e responder. Por favor, note que o valor deve começar com uma barra à esquerda (/).
ping.response
string
Esta diretiva pode ser usado para personalizar a resposta a um pedido ping. A resposta é formatada como text/plain com uma resposta de código 200. Valor padrão: pong.
process.priority
int
Especifica a prioridade de nice(2) a ser aplicado ao processo (se informado). Esse valor pode variar de -19 (prioridade máxima) to 20 (priridade mínima). Valor padrão: vazio.
process.dumpable
bool
Configura a flag dumpable (PR_SET_DUMPABLE prctl) mesmo no caso do processo de usuário ou grupo for diferente do processo inicializador. Isto permite criar core dumps de processos e realizar ptrace no user pool. Valor padrão: no. Desde os PHP 7.0.29, 7.1.17 e 7.2.5.
prefix
string
Especifica um prefix para interpretação de caminhos.
request_terminate_timeout
mixed
O tempo limite para servir um único pedido após o qual o processo trabalha serão encerradas. Esta opção deve ser usada quando o 'max_execution_time', opção do arquivo ini não parar a execução do script por algum motivo. Um valor de '0', significa 'Off'. Unidades disponíveis: s(econds) (padrão), m(inuts), h(our), ou d(ays). Valor padrão: 0.
request_terminate_timeout_track_finished
bool
O timeout configurado para request_terminate_timeout não é disparado depois de fastcgi_finish_request or quando a aplicação terminou e funções internas de finalização estão rodando. Esta diretiva irá aplicar o timeout mesmo para esses casos. Valor padrão: no. Desde o PHP 7.3.0.
request_slowlog_timeout
mixed
O tempo limite para servir um único pedido depois que um rastreamento PHP serão despejados para o arquivo 'slowlog. Um valor de '0 'significa' Off '. Unidades disponíveis: s(egundos)(padrão), m(inutos), h(oras), or d(dias). Valor padrão: 0.
request_slowlog_trace_depth
int
A profundidade do stack trace de slowlog. Valor padrão: 20. Desde o PHP 7.2.0.
slowlog
string
O arquivo de log de solicitações lentas. Valor padrão:
#INSTALL_PREFIX#/log/php-fpm.log.slow
.
rlimit_files
int
Define o descritor de arquivo de abertura rlimit. Valor padrão: valor definido pelo sistema.
rlimit_core
int
Defina o tamanho do núcleo máxímo do rlimit. Valores possíveis: 'unlimited' ou um número inteiro maior ou igual a 0. Valor padrão: valor definido pelo sistema.
chroot
string
Chroot neste diretório, na inicialização. Este valor deve ser definido como um caminho absoluto. Quando este valor não está definido, chroot não é usado.
chdir
string
Chdir neste diretório, na inicialização. Este valor deve ser um caminho absoluto. Valor padrão: diretório atual ou / ao chroot.
catch_workers_output
bool
Redirecionar stdout e stderr no log de erro principal. Se não for 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 do outpur de workers quando catch_workers_output estiver ativo. Valor padrão: yes. Disponível desde o PHP 7.3.0.
clear_env
bool
Limpa o ambiente dos workers do FPM. Previne que variáveis de ambiente arbitrárias alcancem os processos dos workers do FPM limpando o ambiente nos workers antes das variáveis de ambientes desta rotina serem adicionadas. Valor padrão: Yes.
security.limit_extensions
string
Limita as extensões que o script principal do FPM possui permissão a analisar. Evita problemas de configurações no servidor de aplicação. Você deve limitar as extensões do FPM a somente o .php para evitar que usuários maliciosos utilizem outras extensões para executar códigos php. Default value: .php .phar
apparmor_hat
string
Se AppArmor estiver ativo, isto permite modificar o hat. Valor padrão: não configurado.
access.log
string
O arquivo de log de acessos. Valor padrão: não configurado.
access.format
string
O formato do log de acesso.
Valor padrão: "%R - %u %t \"%m %r\" %s"
:
Código | Descrição |
---|---|
%C
|
%CPU |
%d
|
duration µs |
%e
|
fastcgi env |
%f
|
script |
%l
|
content length |
%m
|
method |
%M
|
memory |
%n
|
pool name |
%o
|
header output |
%p
|
PID |
%q
|
query string |
%Q
|
a cola entre %q e %r |
%r
|
request URI |
%R
|
IP remoto |
%s
|
status |
%T
|
time |
%t
|
time |
%u
|
remote user |
É possível passar variáveis de ambiente adicionais e atualizar as configurações do PHP de uma determinada rotina. Para fazer isso, precisa-se adicionar as seguintes opções no arquivo de configuração da rotina.
Exemplo #1 Passando variáveis de ambiente e configurações do PHP para a rotina
env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com php_flag[display_errors] = off php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 32M
php_value
ou
php_flag
irão sobrescrever o valor anterior.
Por favor, note que a definição de
disable_functions ou
disable_classes não
irá substituir os valores previamente definidos no php.ini,
mas adicionará o novo valor em seu lugar.
Configurações definidas com php_admin_value
e php_admin_flag
não podem ser sobrescritas com ini_set().
Configurações do PHP que também podem ser definidas no servidor.
Exemplo #2 definir as configurações de PHP no nginx.conf
set $php_value "pcre.backtrack_limit=424242"; set $php_value "$php_value \n pcre.recursion_limit=99999"; fastcgi_param PHP_VALUE $php_value; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Como essas configurações são passadas para php-fpm como cabeçalhos FastCGI, php-fpm não deve ser vinculado a um endereço acessível. Caso contrário, qualquer um poderá alterar as opções de configuração do PHP. veja também listen.allowed_clients.
Nota: Pools não são um mecanismo de segurança, dado que eles não fornecem total separação; por exemplo, todos os pools utiliza uma única instância de OPcache.