PHP-FPM (FastCGI Process Manager) gerencia processos PHP. Configuração adequada melhora drasticamente performance de aplicações PHP. Este guia mostra como otimizar.
O que é PHP-FPM?
PHP-FPM gerencia processos PHP separadamente do servidor web. Oferece melhor controle sobre recursos, isolamento e performance que mod_php do Apache.
Configuração de Pool
Edite /etc/php/7.4/fpm/pool.d/www.conf (ajuste versão). Configure: pm = dynamic, pm.max_children (baseado em RAM), pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
Cálculo de Processos
Calcule max_children: (RAM disponível – overhead) / memória por processo PHP. Monitore uso real e ajuste. Muitos processos consomem RAM, poucos limitam concorrência.
Otimizações PHP
Configure opcache: opcache.enable=1, opcache.memory_consumption=128, opcache.max_accelerated_files=10000. Aumenta performance significativamente.
Timeout e Limites
Configure: max_execution_time, max_input_time, memory_limit conforme necessidades da aplicação. Balance performance e estabilidade.
Status e Monitoramento
Habilite status page: pm.status_path = /status. Monitore processos ativos, idle, e performance. Use ferramentas de monitoramento.
Múltiplos Pools
Crie pools separados para diferentes sites/aplicações. Permite configuração específica por aplicação. Útil para ambientes com múltiplos sites.
Reinício e Reload
Após mudanças: systemctl restart php7.4-fpm. Use reload para aplicar mudanças sem desconectar conexões ativas: systemctl reload php7.4-fpm.
Conclusão
PHP-FPM bem configurado melhora performance significativamente. Ajuste pools e processos conforme recursos e carga do servidor dedicado.