{"id":42687,"date":"2025-12-10T11:11:20","date_gmt":"2025-12-10T14:11:20","guid":{"rendered":"https:\/\/king.host\/blog\/?p=42687"},"modified":"2026-01-29T10:30:07","modified_gmt":"2026-01-29T13:30:07","slug":"php-fpm","status":"publish","type":"post","link":"https:\/\/king.host\/blog\/solucoes-em-nuvem\/php-fpm\/","title":{"rendered":"PHP-FPM: como configurar e otimizar o desempenho do seu servidor"},"content":{"rendered":"\n<p>Um dos principais <a href=\"https:\/\/king.host\/blog\/tecnologia\/guia-pratico-do-modern-php-desenvolvimento-e-ecossistema\/\">recursos do PHP<\/a> \u00e9 a capacidade de processar m\u00faltiplas requisi\u00e7\u00f5es simultaneamente, exigindo que o ambiente suporte essa demanda. Para isso, o <strong>PHP-FPM<\/strong> se tornou o padr\u00e3o mais adotado no mercado.<\/p>\n\n\n\n<p>O FastCGI Process Manager oferece melhor controle sobre processos, mem\u00f3ria, isolamento e escalabilidade, superando modelos mais antigos, como o mod_php, e garantindo desempenho consistente em servidores.<\/p>\n\n\n\n<p>Quer ver como isso funciona na pr\u00e1tica? Continue a leitura e descubra!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O que \u00e9 PHP-FPM?<\/h3>\n\n\n\n<p>O PHP-FPM \u00e9 uma <strong>implementa\u00e7\u00e3o do PHP baseada no protocolo FastCGI<\/strong>. Seu papel \u00e9 simples: manter processos PHP em execu\u00e7\u00e3o para responder solicita\u00e7\u00f5es recebidas por servidores web como <a href=\"https:\/\/king.host\/blog\/servicos-de-hospedagem\/nginx-o-que-e-e-como-ele-pode-melhorar-seu-site\/\">Nginx<\/a> ou <a href=\"https:\/\/king.host\/blog\/servicos-essenciais\/modulo-seguranca-apache-mod-security\/\">Apache<\/a> rapidamente.<\/p>\n\n\n\n<p>Em vez de carregar o interpretador PHP em cada nova requisi\u00e7\u00e3o, os processos s\u00e3o pr\u00e9-iniciados e prontos para receber trabalho, reduzindo <a href=\"https:\/\/king.host\/blog\/glossario\/latencia\/\">lat\u00eancia<\/a> e aumentando efici\u00eancia.<\/p>\n\n\n\n<p>Outro ponto \u00e9 o controle maior que ele proporciona, refinando como os processos s\u00e3o distribu\u00eddos, gerenciados e encerrados. Para quem gerencia essas aplica\u00e7\u00f5es, isso \u00e9 um diferencial para ajustar o consumo de mem\u00f3ria e conex\u00f5es, por exemplo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como configurar e ativar o PHP-FPM?<\/h3>\n\n\n\n<p>Apesar de parecer complexo, o processo de ativa\u00e7\u00e3o \u00e9 simples e segue uma linha geral independente da distribui\u00e7\u00e3o <a href=\"https:\/\/king.host\/blog\/tecnologia\/introducao-ao-linux\/\">Linux<\/a> utilizada.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Instala\u00e7\u00e3o do PHP-FPM<\/h4>\n\n\n\n<p>A instala\u00e7\u00e3o \u00e9 feita pelo gerenciador de pacotes, que costumam ser algo como php8.1-fpm, php8.2-fpm ou outra vers\u00e3o compat\u00edvel.<\/p>\n\n\n\n<p>Essa etapa instala n\u00e3o s\u00f3 o servi\u00e7o, mas tamb\u00e9m a estrutura para gerenciar processos de forma mais eficiente.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ativa\u00e7\u00e3o do servi\u00e7o<\/h4>\n\n\n\n<p>Depois de instalado, <strong>\u00e9 preciso ativar o servi\u00e7o com o systemctl para que ele inicie automaticamente com o sistema<\/strong>.<\/p>\n\n\n\n<p>Ou seja, isso garante que, sempre que o servidor reiniciar, o PHP-FPM estar\u00e1 ativo sem necessidade de interven\u00e7\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Configura\u00e7\u00e3o inicial do pool<\/h4>\n\n\n\n<p>A parte mais importante \u00e9 ajustar o pool, que funciona como um grupo de processos PHP. Voc\u00ea precisa definir:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quantos processos devem ficar ativos;<\/li>\n\n\n\n<li>Que usu\u00e1rio e permiss\u00f5es esses processos ter\u00e3o;<\/li>\n\n\n\n<li>Quanto de mem\u00f3ria cada processo pode usar;<\/li>\n\n\n\n<li>Se o servidor responder\u00e1 usando <a href=\"https:\/\/king.host\/blog\/tecnologia\/sockets-em-servidor-php\/\">socket<\/a> ou porta TCP.<\/li>\n<\/ul>\n\n\n\n<p>Um exemplo pr\u00e1tico: se voc\u00ea tem dois sites no mesmo servidor, <strong>pode criar um pool para cada um<\/strong>. Assim, se um site estiver recebendo muito tr\u00e1fego, ele n\u00e3o prejudica o outro.<\/p>\n\n\n\n<p><strong>Saiba mais: <\/strong><a href=\"https:\/\/king.host\/blog\/tecnologia\/6-dicas-programador-php\/\"><strong>6 dicas que todo programador PHP deve saber<\/strong><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qual a diferen\u00e7a entre PHP e PHP-FPM?<\/h3>\n\n\n\n<p>O PHP puro \u00e9 <strong>simplesmente o interpretador de <\/strong><a href=\"https:\/\/king.host\/blog\/tecnologia\/script-para-servidor-vps\/\"><strong>scripts<\/strong><\/a>. Ele executa comandos, processa l\u00f3gica e gera o HTML final enviado ao navegador.<\/p>\n\n\n\n<p>J\u00e1 o PHP-FPM \u00e9 uma <strong>camada de otimiza\u00e7\u00e3o que organiza como o PHP trabalha<\/strong>. Ele mant\u00e9m processos prontos, controla a mem\u00f3ria, evita travamentos e acelera a resposta das aplica\u00e7\u00f5es.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">O PHP-FPM \u00e9 melhor?<\/h4>\n\n\n\n<p>Quando falamos em produ\u00e7\u00e3o, a resposta costuma ser sim. O PHP-FPM diminui o tempo de resposta e melhora a performance do servidor em per\u00edodos de alta demanda.&nbsp;<\/p>\n\n\n\n<p>Por exemplo, sem ele, um pico de acessos pode derrubar o site. Com PHP-FPM, o servidor consegue gerenciar a carga e manter a estabilidade.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Devo habilitar o PHP-FPM?<\/h4>\n\n\n\n<p>No Nginx, \u00e9 obrigat\u00f3rio. J\u00e1 no Apache, \u00e9 indicado quando se deseja maior controle sobre processos e desempenho superior ao mod_php.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Quando n\u00e3o usar o PHP-FPM?<\/h4>\n\n\n\n<p><strong>Ambientes de teste extremamente simples<\/strong>, como uma m\u00e1quina local para <a href=\"https:\/\/king.host\/blog\/tecnologia\/php-para-iniciantes-3-dicas-de-ouro\/\">estudar PHP<\/a>, podem funcionar sem ele, embora ainda seja uma boa pr\u00e1tica mant\u00ea-lo ativo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quais s\u00e3o os modos de gerenciamento de processos (pm) e quando usar static, dynamic ou ondemand?<\/h3>\n\n\n\n<p>O PHP-FPM oferece tr\u00eas estilos de gerenciamento, que funcionam como diferentes formas de organizar uma equipe.<\/p>\n\n\n\n<p>O static <strong>define um n\u00famero fixo de processos<\/strong>. Imagine contratar exatamente 20 cozinheiros para todos os turnos.<\/p>\n\n\n\n<p>Ou seja, voc\u00ea tem previsibilidade de desempenho, mas exige mem\u00f3ria dispon\u00edvel, sendo ideal para servidores dedicados, tr\u00e1fego est\u00e1vel ou previs\u00edvel.<\/p>\n\n\n\n<p>Para o dynamic, estamos falando de um ajuste no n\u00famero de processos conforme a demanda. Seguindo o exemplo dos cozinheiros, voc\u00ea teria 5 profissionais fixos, mas sempre chamando refor\u00e7os quando o fluxo aumenta.<\/p>\n\n\n\n<p>Nos casos ondemand, ele cria processos apenas quando necess\u00e1rio. Em resumo, ningu\u00e9m fica na cozinha parado, todos s\u00e3o chamados quando chega um pedido.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como calcular o valor correto para a diretiva pm.max_children com base na mem\u00f3ria do servidor?<\/h3>\n\n\n\n<p>O c\u00e1lculo <strong>depende do consumo m\u00e9dio de mem\u00f3ria por processo PHP<\/strong>. A abordagem t\u00e9cnica envolve medir o uso real da aplica\u00e7\u00e3o em opera\u00e7\u00e3o.<\/p>\n\n\n\n<p>Uma f\u00f3rmula aproximada consiste em dividir a mem\u00f3ria reservada para o PHP-FPM pelo uso m\u00e9dio por processo.<\/p>\n\n\n\n<p>Por exemplo, se a aplica\u00e7\u00e3o consome 80 MB por processo e h\u00e1 2 GB destinados ao pool, o valor recomendado seria 2000 \/ 80 \u2248 25 processos.<\/p>\n\n\n\n<p>\u00c9 fundamental considerar o sistema operacional e outros servi\u00e7os ativos, evitando esgotar recursos e provocar swap, que compromete o desempenho.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quais s\u00e3o as diretivas de configura\u00e7\u00e3o mais importantes em um pool do PHP-FPM e o que elas fazem?<\/h3>\n\n\n\n<p>A configura\u00e7\u00e3o do pool determina o comportamento dos processos em tempo real da sua aplica\u00e7\u00e3o. Por isso, separamos algumas das diretivas mais relevantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>pm.max_children:<\/strong> n\u00famero m\u00e1ximo de processos;<\/li>\n\n\n\n<li><strong>pm.start_servers, pm.min_spare_servers e pm.max_spare_servers:<\/strong> controlam cria\u00e7\u00e3o e reserva de processos;<\/li>\n\n\n\n<li><strong>request_terminate_timeout: <\/strong>impede que scripts travados fiquem rodando indefinidamente;<\/li>\n\n\n\n<li><strong>slowlog e request_slowlog_timeout: <\/strong>ajudam a identificar gargalos, registrando scripts lentos;<\/li>\n\n\n\n<li><strong>listen: <\/strong>define socket ou porta de comunica\u00e7\u00e3o com Nginx\/Apache.<\/li>\n<\/ul>\n\n\n\n<p>Imagine que voc\u00ea tem um checkout de e-commerce. Se scripts lentos n\u00e3o forem encerrados, eles podem travar o carrinho inteiro. Aplicando essas diretivas, voc\u00ea evita esse tipo de problema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como configurar m\u00faltiplos pools do PHP-FPM para rodar diferentes sites ou aplica\u00e7\u00f5es no mesmo servidor?<\/h3>\n\n\n\n<p>Cada pool pode <strong>operar isoladamente, com seu pr\u00f3prio usu\u00e1rio, socket, mem\u00f3ria e limites de processo<\/strong>. A ideia \u00e9 criar m\u00faltiplos pools para duplicar o arquivo de configura\u00e7\u00e3o padr\u00e3o, renomear o pool e ajustar par\u00e2metros como diret\u00f3rio, permiss\u00f5es e diretivas individuais.<\/p>\n\n\n\n<p>Um exemplo para voc\u00ea entender melhor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pool A:<\/strong> site institucional (baixo tr\u00e1fego, ondemand);<\/li>\n\n\n\n<li><strong>Pool B: <\/strong>portal de conte\u00fado (tr\u00e1fego m\u00e9dio, dynamic);<\/li>\n\n\n\n<li><strong>Pool C: <\/strong>loja virtual (alto tr\u00e1fego, static ou dynamic otimizado).<\/li>\n<\/ul>\n\n\n\n<p>Ou seja, mesmo se a loja sofrer um pico de vendas por conta de uma promo\u00e7\u00e3o ou data sazonal, o site institucional n\u00e3o \u00e9 afetado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como utilizar o PHP e PHP-FPM juntos?<\/h3>\n\n\n\n<p>Para colocar o PHP e PHP-FPM funcionando juntos, voc\u00ea precisa de alguns passos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Configurando o servidor web<\/h4>\n\n\n\n<p>O servidor <strong>deve apontar para o socket ou porta definidos no pool<\/strong>. No Nginx, voc\u00ea pode utilizar o c\u00f3digo \u201cfastcgi_pass\u201d, enquanto o Apache utiliza SetHandler e ProxyPassMatch.<\/p>\n\n\n\n<p>N\u00e3o se esque\u00e7a que essa configura\u00e7\u00e3o deve considerar permiss\u00f5es, caminhos e limites de conex\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ajustando diretivas espec\u00edficas<\/h4>\n\n\n\n<p>Ap\u00f3s integrar o servidor web, voc\u00ea deve ajustar par\u00e2metros como fastcgi_read_timeout, buffering e limites de upload.<\/p>\n\n\n\n<p>Esses ajustes s\u00e3o colocados em pr\u00e1tica para <strong>evitar gargalos e comportamentos inesperados em opera\u00e7\u00f5es pesadas<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Garantindo estabilidade operacional<\/h4>\n\n\n\n<p>Uma boa pr\u00e1tica \u00e9 <strong>monitorar constantemente logs de erro e m\u00e9tricas<\/strong>, ajustando diretivas conforme o aumento da carga.<\/p>\n\n\n\n<p>A combina\u00e7\u00e3o de logs do Nginx ou Apache com o slowlog do PHP-FPM facilita identificar scripts lentos ou processos bloqueados.<\/p>\n\n\n\n<p>O PHP-FPM \u00e9 indispens\u00e1vel para quem busca desempenho real em aplica\u00e7\u00f5es PHP, melhorando a velocidade, reduzindo instabilidades e oferecendo uma camada de controle que n\u00e3o existe nos modelos mais antigos.<\/p>\n\n\n\n<p>Se voc\u00ea quer otimizar seu ambiente ou migrar para uma infraestrutura mais preparada, pode ser interessante usar um VPS configurado para alta performance com suporte completo ao PHP-FPM.<\/p>\n\n\n\n<p>Descubra como o <a href=\"https:\/\/king.host\/servidor-vps?utm_source=lab&amp;utm_medium=texto-artigo&amp;utm_campaign=texto-artigo-php-fpm\" target=\"_blank\" rel=\"noreferrer noopener\">servidor VPS da KingHost<\/a> pode elevar o desempenho da sua aplica\u00e7\u00e3o!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP FPM \u00e9 uma implementa\u00e7\u00e3o voltada para melhorar o desempenho de aplica\u00e7\u00f5es web. Ele gerencia processos de forma eficiente, reduzindo o tempo de resposta e o consumo de recursos do servidor. Assim, sites de grande tr\u00e1fego conseguem maior estabilidade e escalabilidade sem comprometer a performance.<\/p>\n","protected":false},"author":439,"featured_media":42688,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1339,1335],"tags":[],"class_list":["post-42687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-servidor-vps","category-solucoes-em-nuvem"],"_links":{"self":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/42687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/users\/439"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/comments?post=42687"}],"version-history":[{"count":2,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/42687\/revisions"}],"predecessor-version":[{"id":42782,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/42687\/revisions\/42782"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media\/42688"}],"wp:attachment":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media?parent=42687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/categories?post=42687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/tags?post=42687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}