O Apache estava lento na produção. Depois de procurar respostas por algum tempo, finalmente fui ao canal IRC #apache e os profissionais me fizeram verificar o modo apache com este comando:
sudo apachectl -V
e ficaram alarmados ao descobrir que o Server MPM é pré - fork . Eles enfaticamente disseram: NÃO USE PREFORK EM UM SERVIDOR DE PRODUÇÃO. Acontece que os pacotes Ubuntu (presumivelmente herdados do Debian?) Insistem em executar o apache no modo prefork, apesar do método recomendado para executar o PHP com Apache recomendar claramente proxy_fcgi e php-fpm, depois o fcgid e, finalmente, diz que você não deve use prefork:
Por que você não deve mais usar o mod_php com o mpm prefork
- O mod_php é carregado em todos os processos httpd o tempo todo. Mesmo quando o httpd está servindo conteúdo estático / não php, essa memória está em uso.
- O mod_php não é seguro para threads e obriga a manter o mpm prefork (multi processo, sem threads), que é a configuração mais lenta possível
Essa página também contém alguns detalhes sobre o PHP-FPM, mas isso parece um pouco elaborado, pouco claro e envolve muita configuração manual. Estou decepcionado e surpreso O Ubuntu 16 não tem opção de pacote para o modo fastCGI ou algo assim.
Tentei mudar o apache para o modo de evento usando a2enmod e quando tentei acionar o apache novamente, recebi um erro:
O Apache está executando um MPM encadeado, mas seu módulo PHP não é compilado para ser seguro para encadeamentos. Você precisa recompilar o PHP
De qualquer forma, eu queria saber se alguém tinha algumas instruções passo a passo mínimas para obter o modo fastCGI em execução no Ubuntu 16 com PHP 7.0 , confiando nos instaladores de pacotes o máximo possível. Atualmente, estou vendo muitas instruções vagas e mal explicadas e estou preocupado em estragar meu ambiente de produção com más decisões.
Além disso, alguém deve adicionar mpm-event como uma opção de tag. Isso é o que os caras do #apache IRC recomendaram.