FPM usa a sintaxe do php.ini para arquivos de configuração - php-fpm.conf.
pid
string
Caminho para o arquivo PID. Valor padrão: nenhum.
error_log
string
Caminho para o arquivo de log de error. Valor padrão: #INSTALL_PREFIX#/log/php-fpm.log.
log_level
string
Nível de log de erro. Valores possíveis: alert, error, warning, notice, debug. Valor padrão: aviso prévio.
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 então FPM será reiniciado. Um valor de 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. Isto pode ser útil para contornar corrupções acidentais em memória compartilhada de um acelerador. Unidades disponíveis: s(econds), m(inutos), h(our), ou d(ays). 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(econds), m(inutes), h(ours), or d(ays) Unidade Padrão: seconds. Valor padrão: 0.
daemonize
boolean
Enviar FPM de fundo. Definido como 'no'(não) para manter FPM em primeiro plano para depuração. Valor padrão: yes.
Com 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 no qual a aceitar pedidos FastCGI. Sintaxes válidas são: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Esta opção é obrigatório, em cada rotina.
listen.backlog
int
Definir listen(2) backlog. Um valor de "-1" significa ilimitado. Valor padrão: -1.
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 originais 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.
listen.owner
string
Definir permissões para socket unix, se este for usado. 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 0666.
listen.group
string
Ver listen.owner.
listen.mode
string
Ver listen.owner.
user
string
Usuário Unix de processos FPM. Esta opção é obrigatória.
group
string
Grupo Unix de processos FPM. Se não for definido, o grupo do usuário padrão é utilizado.
pm
string
Escolha como o gestor do processo vai 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 é fixado (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 filho é definida 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 podem ser criados quando pm está configurado como static e o número máimo 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
in
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_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_path
string
O URI para visualizar a página de status do FPM. Se este valor não for definido, não URI será reconhecida como uma página de estado. Valor padrão: nenhum.
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.
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_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(econds)(padrão), m(inutes), h(ours), or d(ays). Valor padrão: 0.
slowlog
string
O arquivo de log de solicitações lentas. Valor padrão: #INSTALL_PREFIX#/log/php-fpm.log.slow.
rlimit_files
int
Definir abrir o descritor de arquivo rlimit. Valor padrão: valor definido pelo sistema.
rlimit_core
int
Defina o tamanho do núcleo maxí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 para o início deste diretório. Este valor deve ser definido como um caminho absoluto. Quando este valor não está definido, chroot não é usado.
chdir
string
Chdir para o início deste diretório. Este valor deve ser um caminho absoluto. Valor padrão: diretório atual ou / ao chroot.
catch_workers_output
boolean
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.
É possível passar variáveis de ambiente adicionais e atualizar as configurações do PHP de uma determinada rotina. Para fazer isso, você precisa adicionar as seguintes opções para php-fpm.conf
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 [email protected] 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
Configurações definidas com php_admin_value e php_admin_flag não podem ser sobreescritas com ini_set().
A partir de 5.3.3, configurações do PHP também são possíveis de ser definida 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 em todo o mundo. Caso contrário, qualquer um pode alterar as opções de configuração do PHP. veja também listen.allowed_clients.