Como instalar o Apache com o PHP-FPM no CentOS 8

Como instalar o Apache com o PHP-FPM no CentOS 8

A maneira comum de executar o PHP com o Apache é o módulo mod_php. Mas o PHP-FPM tem várias vantagens sobre isso. O PHP-FPM (FastCGI Process Manager) aumenta drasticamente o desempenho do seu ambiente Apache/PHP. Portanto, isso é útil para sites de alta carga. Este tutorial ajudará você a configurar o PHP-FPM com o Apache no sistema CentOS 8 e RHEL 8 Linux.

Pré -requisidades

  • Acesso ao shell ao sistema CentOS 8 com a conta de privilégios sudo.
  • Configuração inicial completa do servidor para sistemas recém -instalados.

Etapa 1 - Instale o Apache

Os pacotes Apache estão disponíveis no repositório AppStream padrão. Você pode simplesmente atualizar o cache DNF e instalar pacotes de servidores da Web Apache usando os seguintes comandos.

sudo dnf update sudo dnf install httpd httpd-tools mod_ssl 

O pacote MOD_SSL fornece a funcionalidade para usar um certificado SSL para HTTP seguro. Após a instalação, ative o serviço HTTPD e inicie.

sudo systemctl ativar httpd sudo systemctl start httpd 

Etapa 2 - Instale o PHP com PHP -FPM

O repositório REMI contém os pacotes PHP mais recentes para o sistema Linux CentOS 8. Então, antes de tudo, você precisa adicionar o repositório REMI ao seu sistema. Basta executar o seguinte comando para adicionar o repositório.

sudo dnf install dnf-utils http: // rpms.REMIREPO.Net/Enterprise/Remi-Relase-8.RPM 

Em seguida, ative o módulo DNF necessário para instalação de php. Aqui estamos habilitando o módulo para instalar o Php 7.4. Você pode mudar isso para Php 7.3 ou Php 7.2 De acordo com seus requisitos.

Módulo SUDO DNF Redefinir módulo PHP SUDO DNF Habilitar PHP: REMI-7.4 

Agora, instale o PHP no seu sistema. Como vamos usar o FastCGI Process Manager (FPM) para esta configuração. Portanto, instale o pacote Php-FPM também.

sudo dnf update sudo dnf install php php-fpm php-gd php-mysqlnd 

Você também pode exigir mais alguns módulos de PHP, então instale -os antes de ir a seguir. Depois de concluir a instalação do PHP, ative o serviço php-fpm e inicie-o.

sudo systemctl Ativar php-fpm sudo systemctl start php-fpm 

Verifique se o serviço PHP-FPM está em execução.

SUDO SYSTEMCTL STATUS PHP-FPM ● PHP-FPM.Serviço - o PHP FastCGI Process Manager carregado: carregado (/usr/lib/systemd/system/php -fpm.serviço; desabilitado; Preset do fornecedor: desativado) ativo: ativo (em execução) desde segunda-feira 2019-12-09 21:44:57 PST; 1h 24min atrás PID principal: 29280 (php-fpm) Status: "Processos ativos: 0, ocioso: 5, solicitações: 3, lento: 0, tráfego: 0Req/s" Tarefas: 6 (limite: 10321) Memória: 24.6m CGROUP: /Sistema.Slice/php-fpm.Serviço ├─29280 PHP-FPM: processo mestre (/etc/php-fpm.conf) ├─29281 php-fpm: pool www ├─29282 php-fpm: piscina www ├─29283 php-fpm: pool www ├─29284 php-fpm: pool www └─29285 phpm: pool ww deck 09 : 44: 57 Tecadmin.exemplo.com Systemd [1]: Iniciando o Php Fastcgi Process Manager… 09 de dezembro 21:44:57 Tecadmin.exemplo.com Systemd [1]: iniciou o PHP FastCGI Process Manager. 

Etapa 3 - Configure o PHP -FPM

Nesta etapa, você instalou todos os pacotes necessários. Vamos iniciar o processo de configuração. Primeiro, edite o arquivo de configuração do PHP-FPM para Apache:

sudo vim /etc /php-fpm.d/www.conf 

Faça as alterações como abaixo. As versões mais recentes do Apache podem se conectar ao soquete usando um proxy. Portanto, verifique se a escuta está configurada para um arquivo de soquete.

Em seguida, defina o usuário e agrupe o mesmo que o servidor Apache usando. Se você precisar conectar o FPM de uma mudança remota do sistema, ouça.Permitido_clients para LAN IP em vez de 127.0.0.1.

; Ouça = 127.0.0.1: 9000 ouça =/run/php-fpm/www.Usuário de Sock = Apache Group = Apache Ouça.permitido_clients = 127.0.0.1 Ouça.Proprietário = Apache ouça.Grupo = Apache Ouça.modo = 0660 pm = dinâmico
1234567891011; Ouça = 127.0.0.1: 9000Listen =/run/php-fpm/www.Usuário de Sock = ApacheGroup = Apache ouça.permitido_clients = 127.0.0.1Listen.proprietário = apachelisten.Grupo = Apachelisten.modo = 0660pm = dinâmico

Depois de fazer as alterações reiniciar o serviço PHP-FPM para aplicar alterações.

sudo systemctl reinicie o php-fpm 

Etapa 4 - Crie Apache VirtualHost

Agora, a hora é configurar o Apache para usar o PHP-FPM para processar arquivos PHP. Aqui estão duas opções, ou você usa o FPM como padrão para todos os hosts virtuais ou pode configurar especificamente o host virtual para usar o FPM. Dessa forma, outros hosts virtuais não serão afetados.

Para este exemplo, estou configurando o FPM para apenas um host virtual específico. SO, arquivo de configuração editado no editor de texto:

sudo vim/etc/httpd/conf.d/exemplo.com.conf 

Agora adicionada configuração de proxy usando um arquivo de soquete. Também configurou todo o script PHP para usar o manipulador de FPM para execução.

ServerAdmin [email protected] documentroot/var/www/html servername exemplo.com Serveralias www.exemplo.com # declaração de proxy # Devemos declarar um parâmetro aqui (não importa qual) ou # não registrará o proxy antes do tempo Proxyset desableReuse = OFF # Nota: Se você configurar o php-fpm para usar o "pm = ONDEMAND "#HETHEN Uso" Proxyset desableReuse = em "Sethandler Proxy: fcgi: // php-fpm errorlog logs/exemplo.com-erro.Log CustomLog Logs/Exemplo.com acesso.log combinado
12345678910111213141516171819202122232425 ServerAdmin [email protected] documentroot/var/www/html servername exemplo.com Serveralias www.exemplo.com # declaração de proxy # Devemos declarar um parâmetro aqui (não importa qual) ou # não registrará o proxy antes do tempo ProxySet desableReuse = Off # Nota: Se você configurar o PHP-FPM para usar o "pm = ondemand" # então Use "proxyset desableReuse = on" Sethandler Proxy: fcgi: // php-fpm ErrorLog Logs/Exemplo.com-erro.Log CustomLog Logs/Exemplo.com acesso.log combinado

Salve o arquivo de configuração do host virtual e recarregue o Apache para aplicar alterações.

sudo systemctl reiniciar httpd 

Etapa 5 - Ativar regras de firewall

Seu servidor está pronto para servir o aplicativo. Se houver um firewall ativado no seu sistema, verifique se as portas Apache estão abertas para acessar de sistemas remotos.

Os seguintes comandos abrirão as portas necessárias para você.

sudo firewall-cmd-zone = public --permanent --add-service = http sudo firewall-cmd-zone = public --permanent --add-service = https sudo firewall-cmd--reload 

Etapa 6 - Configuração de teste

Tudo feito. Para testar o ambiente, crie um script PHP com phpinfo () função. Coloque este arquivo no seu servidor documento root. Use o comando abaixo para fazer isso.

eco "">/var/www/html/info.php 

Em seguida, acesse informações.PHP usando o endereço IP do servidor (para o VirtualHost padrão) para o seu domínio configurado no Apache VirtualHost.

http: // localhost/info.php 

Conclusão

Você configurou com sucesso um Apache com o PHP-FPM no seu sistema CentOS 8 ou RHEL 8 Linux. Agora você pode hospedar um site do seu servidor.