Como adicionar suporte PHP-FPM para sites NGINX

Nota: O seguinte artigo irá ajudá-lo com: Como adicionar suporte PHP-FPM para sites NGINX

Se você estiver construindo sites NGINX, provavelmente precisará de suporte a PHP-FPM habilitado. Jack Wallen mostra como.

Se você decidiu mudar do Apache para o NGINX, uma das perguntas que você pode fazer é como adicionar suporte para o PHP Fast Process Manager (PHP-FPM). Para aqueles que talvez não saibam, o PHP-FPM é um manipulador FastCGI para scripts e aplicativos PHP, o que possibilita que um site lide com cargas mais altas. O PHP-FPM é muito mais rápido do que os ambientes PHP multiusuário tradicionais baseados em CGI e também permite a hospedagem de vários aplicativos usando diferentes versões do PHP.

Quero orientá-lo no processo de instalação do PHP-FPM e ativá-lo em seus sites NGINX. Não é tão simples quanto com o Apache, mas não deve ser um grande desafio para qualquer profissional de TI.

VEJO: Comandos de controle de serviço do Linux (TechRepublic Premium)

O que você precisará

As únicas coisas que você precisa para isso são uma instância em execução do NGINX e um usuário com privilégios sudo. Estarei demonstrando no meu servidor de escolha, Ubuntu 20.04, mas este processo pode ser modificado para funcionar em qualquer plataforma que suporte PHP e PHP-FPM.

Como instalar o PHP-FPM

A primeira coisa que devemos fazer é instalar o PHP-FPM e alguns extras. Faça login na sua instância do Ubuntu Server e, na janela do terminal, emita o comando:

sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath -y

O comando acima fará o download e instalará todas as dependências necessárias.

Depois que o PHP-FPM estiver instalado, você precisa descobrir qual versão do PHP está instalada. Faça isso com o comando:

php –versão

Você pode então verificar o status do PHP-FPM com o comando:

sudo systemctl status php7.X-fpm

Onde X é o número da versão do PHP.

Se você vir que o PHP-FPM não está rodando (deveria estar), inicie-o com o comando:

sudo systemctl start php7.X-fpm

Onde X é o número da versão do PHP.

Por fim, habilite o PHP-FPM com o comando:

sudo systemctl habilita php7.x-fpm

Novamente, onde X é o número da versão do PHP.

Como configurar o PHP-FPM

Agora precisamos fazer algumas alterações na configuração, para que o NGINX conheça o PHP-FPM. A primeira é editar o arquivo de configuração padrão do NGINX. Abra esse arquivo com o comando:

sudo nano /etc/nginx/nginx.conf

Nesse arquivo, procure a linha:

#server_tokens desativado;

Descomente essa linha para que fique assim:

server_tokens desligado;

Salve e feche o arquivo.

Em seguida, precisamos editar a configuração padrão do virtualhost. Abra esse arquivo com o comando:

sudo nano /etc/nginx/sites-available/default

Nesse arquivo, procure a seção em:

# passa scripts PHP para o servidor FastCGI

Essa seção precisa se parecer com:

localização ~ .php$ {

inclua trechos/fastcgi-php.conf;

#

# # Com php-fpm (ou outros soquetes unix):

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

# # Com php-cgi (ou outros soquetes tcp):

# fastcgi_pass 127.0.0.1:9000;

}

Em outras palavras, descomente (remova o caractere #) as linhas:

Salve e feche o arquivo.

Reinicie o NGINX com o comando:

sudo systemctl reinicie o nginx

Como testar a instalação

Crie um arquivo de teste com o comando:

sudo nano /var/www/html/info.php

Nesse arquivo, cole o seguinte conteúdo:

Salve e feche o arquivo.

Abra um navegador da Web e aponte para (onde SERVER é o endereço IP do servidor de hospedagem). Você deve ver, próximo ao topo da página de informações do PHP, FPM/FastCGI listado para a API do servidor e, sob cgi-fcgi, que php-fpm está ativo (Figura A).

Figura A

E é isso, você tem o NGINX instalado e funcionando com suporte PHP-FPM. Lembre-se, quando você construir seus arquivos de configuração de virtualhost, você precisará certificar-se de incluir suporte PHP neles. Para isso, você pode usar o arquivo /etc/nginx/sites-available/default como exemplo.

Parabéns, aproveite essa bondade do PHP/NGINX.