ezra-s sugere uma boa abordagem, mas não inclui alguns detalhes que podem ser confusos para as pessoas que confiam em gerenciadores de pacotes. OBSERVAÇÃO : não tenho certeza se essas etapas são exatas. Se alguém encontrar problemas ou problemas, informe-nos e atualizarei esta postagem.
Em primeiro lugar, enquanto escrevia, os pacotes apache2 do Ubuntu insistem em prefork se você quiser instalar o PHP. Não se desespere, no entanto, porque você ainda pode usar instaladores de pacotes para instalar e atualizar o PHP e apache2 e ainda fazer sua configuração funcionar com o Apache no modo evento usando PHP-FPM como recomendado pelo wiki do Apache e descrito com mais detalhes em PHP de alto desempenho no apache httpd 2.4.x usando mod_proxy_fcgi e php-fpm . A ideia básica é que o apache2 e o PHP-FPM se comuniquem via socket ao invés do PHP rodando como um módulo do Apache.
1) Remova ou desative o módulo PHP do Apache
Como os pacotes do Ubuntu insistem no prefork Apache ao instalar o PHP, temos que separá-los. Eu fiz isso usando o apt para desinstalar libapache2-mod-php7.0 porque eu não preciso mais do pacote:
sudo apt-get remove libapache2-mod-php7.0
Alternativamente, você pode desabilitar o módulo php7.0 do Apache, mas isto não removerá o pacote apt do seu sistema, o que deixa para trás irritantes restrições ao sistema.
sudo a2dismod php7.0
2) Mude o Apache para o modo de evento e habilite o fcgid
Eu acredito que esses comandos devem fazer o truque:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo a2enmod proxy_fcgi
3) Instalar o PHP-FPM
Eu já tenho o PHP 7 instalado com seus vários módulos, então eu apenas instalei o PHP-FPM com este comando:
sudo apt-get install php7.0-fpm
4) Edite sua configuração do VirtualHost para manipular arquivos PHP com o PHP-FPM:
No meu caso, eu editei o host SSL padrão, /etc/apache2/sites-available/default-ssl.conf , e adicionei esta linha perto do topo:
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/html/
IMPORTANTE Isso instrui o Apache a lidar com solicitações de arquivos PHP com o PHP-FPRM e com o caminho desta diretiva ( /run/php/php7.0-fpm.sock ) deve corresponder ao caminho especificado pela diretiva listen no arquivo /etc/php/7.0/fpm/pool.d/www.conf
5) Reinicie o Apache
sudo service apache2 restart
Para verificar se o modo de evento está ativado, use este comando:
sudo apachectl -V
Na saída, você deve ver isto:
Server MPM: event
Tente criar uma página phpinfo e acessá-la no seu navegador. Você deve ver Server API: FPM/FastCGI
na saída.