Este documento fornece instruções para instalar e configurar o Apache 2.4 com PHP-FPM no Debian 10, habilitando o módulo MPM_EVENT para melhor desempenho. Ele instrui o leitor a instalar pacotes necessários, configurar o Apache VirtualHost para usar PHP-FPM, e habilitar o MPM_EVENT no Apache ao invés do MPM_PREFORK padrão.
1. Neste tutorial iremos trabalhar em cima do sistema operacional Debian
10 Buster utilizando uma maquina com Apache2.4 instalado, faremos o uso do
mpm_event juntamente com php-fpm instalado na mesma.
Pré-requisitos
Você deve ter acesso SSH ao sistema Debian 10 com privilégios de Sudo.
Instalação do Apache
Pacotes Apache estão disponíveis nos repositórios padrão do Apt em todos
os sistemas Debian. Você pode atualizar o cache do Apt e instalar os
pacotes do servidor web Apache usando o seguinte comando:sudo apt
update
sudo apt update
sudo apt install apache2 gnupg2
2. Instalação PHP e PHP-FPM
Para a instalação do PHP, recomendamos o uso do PPA de Ondřej Surý,
que fornece as versões mais recentes do PHP para sistemas Debian.
Adicione este PPA ao seu sistema Debian usando os seguintes comandos:
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ buster main" | tee
/etc/apt/sources.list.d/php.list
Depois disso, instale a versão PHP necessária. Você pode simplesmente
executar os seguintes comandos para a instalação padrão da versão PHP
com pacotes PHP-FPM.
apt update
sudo apt install php php7.2-fpm
Configuração Apache
Agora habilite alguns módulos necessários para a configuração de várias
versões do PHP com o Apache. Esses módulos são necessários para
integrar o PHP FPM e FastCGI ao servidor Apache.
a2enmod alias proxy proxy_fcgi
Vamos configurar o Apache VirtualHost para executar com o FPM / FastCGI.
Para este tutorial, usamos o VirtualHost padrão. Edite o arquivo de
configuração do host do VirtualHost em um editor de texto. Você pode
criar um novo VirtualHost conforme seus requisitos, portanto, habilite
qualquer novo VirtualHost.
vim /etc/apache2/sites-available/000-default.conf
3. Atualize a configuração da seguinte maneira.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch .php$>
# 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Salve suas alterações no arquivo de configuração e reinicie o Apache para
recarregar as alterações.
systemctl restart apache2.service
Configuração de teste
Crie um script PHP com a unçãophpinfo ()e coloque-o na raiz do
documento do servidor. Use o comando abaixo para fazer isso.
echo " <? php phpinfo ();?> "> /var/www/html/info.php
Agora acesse o info.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
4. Instalação do modulo MPM_EVENT
apt-get -y install libapache2-mod-php7.2
Desabilitando o MPM_PREFORK e o Modulo
PHP do Apache2.4
a2dismod php7.2
a2dismod mpm_prefork
a2enmod mpm_event
services apache2 restart
Conferir se de fato foi habilitado o
MPM_EVENT
apache2ctl -V
5. Conclusão
Concluindo, o MPM de event do Apache aumenta o desempenho do
servidor Apache, permitindo atender a mais solicitações com menos memória.
Se você deseja implantar um aplicativo PHP, use PHP-FPM para lidar com
solicitações PHP. Isso é altamente recomendado para a execução de aplicativos
em servidores com memória limitada, como instâncias da nuvem com 512 MB
ou 1 GB de RAM.As pilhas Bitnami usam essa configuração por padrão para
máquinas virtuais e imagens em nuvem.
6. Aprofundar na configuração para alto
desempenho acesse:
https://haydenjames.io/php-fpm-tuning-using-pm-static-max-performance/
https://www.liquidweb.com/kb/apache-performance-tuning-mpm-
directives/
https://www.vivaolinux.com.br/artigo/Apache-24-Modulos-de-
Multiprocessamento-MPM?pagina=1
https://medium.com/@sbuckpesch/apache2-and-php-fpm-performance-
optimization-step-by-step-guide-1bfecf161534