Eu acertei a mesma confusão, sinto sua dor. Depois de muita leitura, ficou claro para mim que a maioria dos artigos está desatualizada e se refere a métodos anteriores (ou às vezes combinações).
Usando o PHP-FPM com a configuração interna do Ubuntu 16.04, você somente precisa fazer isso:
sudo a2enconf php7.0-fpm
sudo a2enmod proxy proxy_fcgi
Eu fiz a maior parte do que você fez e, em seguida, removi tudo, quando essa configuração personalizada não fazia sentido.
Para que é o php7.0-fpm.conf existente?
A configuração que você encontrou instalada pelo pacote é para usar o mod_proxy_fcgi. Ele liga arquivos .php via mod_proxy_fcgi ao PHP FPM, usando o mod_proxy, através de um Socket de Domínio Unix. Até onde sei, esta é a "receita" mais atualizada (das seis já disponíveis!)
Você não precisa instalar o libapache2-mod-fastcgi
, que é um método diferente e antigo. Você não precisa escrever essa configuração - isso é para usar o mod_fastcgi diretamente. Você não precisa instalar o actions fastcgi alias
como eles estão para configurar o mod_fastcgi.
Eu acho estranho que nenhum dos artigos - mesmo aqueles para o Ubuntu 16 - mencionem que a nova receita está pronta para você!
Este comentário esclareceu a história para mim:
O método preferido é agora fastcgi, usando qualquer uma dessas receitas:
(mod_fastcgi, httpd 2.2) link
(mod_fcgid, httpd 2.2) link
(mod_proxy_fcgi, httpd 2.4) link
link (2013)
Além disso, este artigo do Apache detalha as três subopções para configurar o mod_proxy_fcgi para se conectar ao FPM, usando ProxyPassMatch ou SetHandler + UDS (acho que a UDS é desde o Apache 2.4.10, mas perdi a referência)
Então, vim a visualizar que agora existem seis maneiras de configurá-lo:
Em ordem histórica:
-
Módulo PHP do Apache: mod_php (do jeito antigo)
-
Via FastCGI - usando o manipulador / ação / alias / configuração FastCgiExternalServer
a. mod_fastcgi
b. mod_fcgid
-
Usando o PHP-FPM via mod_proxy_fcgi, configurado via:
a. Soquete TCP (IP e porta) ProxyPassMatch ... fcgi: //127.0.0.1: 9000 / path /
b. Soquete de domínio Unix (UDS) ProxyPassMatch… unix: / path / to / socket
c. (UDS) via SetHandler "proxy: unix: OR SetHandler" proxy: fcgi:
Aviso: tudo isso é novo para mim, então provavelmente ainda tenho cinco coisas erradas e dez coisas para aprender.