Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
18.12.2024
No categories

Gerenciador de processos PHP FastCGI – PHP-FPM

Otimize o desempenho do PHP com PHP-FPM em seu VPS AlexHost

Por que usar PHP-FPM na AlexHost? O PHP-FPM (FastCGI Process Manager) turbina sites baseados em PHP, como WordPress ou Laravel, proporcionando tempos de resposta mais rápidos e uso eficiente de recursos. O VPS da AlexHost, com armazenamento NVMe, acesso total à raiz e proteção DDoS, é a plataforma perfeita para executar o PHP-FPM, garantindo que suas aplicações lidem com alto tráfego com facilidade. Este guia cobre o que é o PHP-FPM, por que ele é um divisor de águas e como configurá-lo em seu VPS AlexHost.

O que é PHP-FPM?

PHP-FPM, ou PHP FastCGI Process Manager, é uma implementação do FastCGI para scripts PHP. FastCGI é um protocolo usado para melhorar o desempenho dos servidores web, tratando os pedidos de forma mais eficiente do que o padrão CGI (Common Gateway Interface). Enquanto o CGI cria um novo processo para cada pedido (levando a um alto consumo de recursos), o FastCGI mantém um conjunto de processos de trabalho prontos para lidar com vários pedidos, reduzindo assim a sobrecarga. O PHP-FPM adiciona uma camada de gerenciamento de processos no topo do FastCGI, permitindo recursos como pooling de processos, geração de trabalhadores sob demanda, desligamento gracioso e a capacidade de lidar com ambientes de alto tráfego com facilidade. É agora o manipulador de PHP padrão de facto para muitos servidores web modernos, incluindo NGINX e Apache

Por que usar o PHP-FPM?

  1. Desempenho melhorado: O PHP-FPM pode lidar com mais pedidos simultâneos com menos recursos, reduzindo a carga do servidor e acelerando os tempos de resposta. Isso é especialmente benéfico para sites ou aplicativos de alto tráfego que sofrem picos repentinos de tráfego.
  2. Gerenciamento de processos: O PHP-FPM permite uma gestão de processos ajustada, dando-lhe controlo sobre a forma como o PHP trata os pedidos. Ele usa um pool de trabalhadores que pode ser ajustado para se adequar à carga de trabalho esperada, garantindo o uso eficiente dos recursos do servidor.
  3. Melhor utilização de recursos: Como o PHP-FPM agrupa processos, ele pode atender a várias solicitações usando os mesmos trabalhadores, minimizando a necessidade de criar e encerrar processos continuamente. Isso melhora o uso da memória e a eficiência da CPU.
  4. Degradação graciosa: Quando configurado corretamente, o PHP-FPM pode degradar graciosamente, reduzindo o número de processos ativos se o servidor ficar sobrecarregado, evitando uma falha completa.
  5. Recursos avançados: O PHP-FPM inclui recursos avançados como o slow-log para depuração, geração de processos adaptáveis e relatórios de status, que fornecem informações sobre o desempenho e a integridade de seus aplicativos PHP.

Principais caraterísticas do PHP-FPM

  • Grupos de processos: O PHP-FPM permite definir vários pools de processos de trabalho PHP. Cada pool pode ser configurado com diferentes definições, permitindo-lhe executar diferentes aplicações PHP com diferentes requisitos de tráfego no mesmo servidor.
  • Geração de processos adaptável: O PHP-FPM pode escalar automaticamente o número de processos de trabalho com base nos níveis de tráfego. Ele começa com um número mínimo de trabalhadores e pode aumentar o tamanho do pool quando necessário, sem desperdiçar recursos durante períodos de baixo tráfego.
  • Registo lento: A funcionalidade de registo lento no PHP-FPM regista os pedidos que excedem um tempo de execução predefinido. Isso ajuda os desenvolvedores a identificar e resolver gargalos de desempenho em seu código PHP.
  • Página de Status: O PHP-FPM fornece uma página de status integrada que fornece informações em tempo real sobre o status do pool, trabalhadores ativos, trabalhadores ociosos e outras métricas que podem ser usadas para monitorar o desempenho.
  • Encerramento gracioso: O PHP-FPM pode encerrar processos de forma graciosa, permitindo que as solicitações em andamento sejam concluídas antes do encerramento. Isto evita o encerramento abrupto de scripts em execução, garantindo uma melhor experiência do utilizador.

Como funciona o PHP-FPM

O PHP-FPM funciona como um servidor FastCGI autónomo que está integrado com um servidor Web, como o NGINX ou o Apache, para servir scripts PHP. Quando uma solicitação chega, o servidor web encaminha a solicitação PHP para o serviço PHP-FPM, que gerencia um pool de processos de trabalho para executar o código PHP e enviar o resultado de volta para o servidor web para entrega ao cliente. Aqui está um fluxo simplificado de como o PHP-FPM lida com uma solicitação

  1. Solicitação do cliente: Um usuário solicita uma página web que contém código PHP.
  2. Servidor Web recebe a solicitação: O servidor web (NGINX ou Apache) recebe a solicitação e a encaminha para o serviço PHP-FPM usando o protocolo FastCGI.
  3. O trabalhador PHP-FPM processa a solicitação: Um dos processos de trabalho no pool PHP-FPM lida com a solicitação, executa o script PHP e retorna a saída.
  4. Resposta enviada de volta: O servidor Web recebe a saída e a envia de volta para o cliente como o HTML renderizado final.

Definindo e configurando o PHP-FPM

Passo 1: Instalando o PHP-FPM

Para a maioria das distribuições Linux, o PHP-FPM pode ser instalado através de gerenciadores de pacotes. Aqui estão os comandos para sistemas comuns:

# For Debian/Ubuntu
sudo apt update
sudo apt install php-fpm
# For CentOS/RHEL
sudo yum install php-fpm
Uma vez instalado, você pode iniciar o serviço PHP-FPM

sudo systemctl start php-fpm

Passo 2: Configurando os pools do PHP-FPM

O arquivo de configuração principal para o PHP-FPM é tipicamente localizado em /etc/php/7.x/fpm/pool.d/ ou /etc/php-fpm.d/ dependendo da sua distribuição e versão do PHP. Cada pool é definido no seu próprio ficheiro, normalmente com o nome do website ou aplicação que serve. Eis um exemplo de configuração de uma pool:

[www]
user = www-data
group = www-data
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
  • pm = dinâmico: O gestor de processos pode ajustar dinamicamente o número de processos de trabalho com base na procura.
  • pm.max_children: O número máximo de processos de trabalho que podem ser gerados para tratar pedidos.
  • pm.start_servers: O número de processos de trabalho que começam quando o PHP-FPM é iniciado.
  • pm.min_spare_servers e pm.max_spare_servers: Define o número mínimo e máximo de workers ociosos, permitindo ao PHP-FPM escalar recursos baseado na carga.
  • pm.max_requests: O número máximo de requisições que um worker pode manipular antes de ser terminado e substituído. Isso ajuda a prevenir vazamentos de memória em scripts de longa execução.

Etapa 3: Configurando o servidor Web para usar o PHP-FPM

Para o NGINX:

No arquivo de configuração do NGINX (por exemplo, /etc/nginx/sites-available/example.com), configure o PHP-FPM como o manipulador de PHP:

server {
listen 80;
server_name example.com;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}

Para o Apache:

Para ativar o PHP-FPM no Apache, certifique-se de que o módulo mod_proxy_fcgi está ativado

sudo a2enmod proxy_fcgi setenvif

Em seguida, atualize a configuração do host virtual do Apache

<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>

Passo 4: Testando a configuração

Depois de configurar o PHP-FPM e seu servidor web, reinicie os serviços para aplicar as alterações:

# For NGINX
sudo systemctl restart nginx
# For Apache
sudo systemctl restart apache2
Para verificar se o PHP-FPM está funcionando, crie um arquivo phpinfo.php em seu diretório raiz da web:
?php
phpinfo();
?>
Visite o arquivo em seu navegador (por exemplo, http://example.com/phpinfo.php) para ver se o PHP-FPM está listado como o manipulador

Conclusão: Supercharge PHP com AlexHost e PHP-FPM

O PHP-FPM transforma seus aplicativos PHP em máquinas de alto desempenho, e o VPS alimentado por NVMe da AlexHost garante que eles funcionem sem problemas sob cargas pesadas. Instale o PHP-FPM, configure pools e integre com NGINX ou Apache para obter sites rápidos e seguros. Monitorize com páginas de estado, depure com registos lentos e faça cópias de segurança das configurações para segurança. Com o acesso à raiz e o suporte da AlexHost, seus projetos PHP são imparáveis – comece a codificar e escale sem esforço!

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills

Похожие записи не найдены.