PHP 7.2 fastcgi não funciona no servidor Ubuntu 18.04

3

Acabei de instalar o LAMP em um servidor Ubuntu 18.04 e não consigo fazer o PHP fastcgi funcionar. Aqui está minhas configurações:

Meu arquivo PHP do fpm: /etc/php/7.2/fpm/pool.d/sites.mydomain.conf

[sites.mydomain]
 ...
user = sites
group = sites
 ...
listen = /run/php/php7.2-fpm.sites.mydomain.sock
 ...
listen.owner = www-data
listen.group = www-data

então

sudo service php7.2-fpm reload
sudo service php7.2-fpm restart

Meu arquivo host virtual: etc / apache2 / sites-available / sites.mydomain.conf

    ServerName sites.mydomain
    ServerAdmin webmaster@localhost
    DocumentRoot /srv/www/sites/html

    <IfModule mod_fastcgi.c>
      AddHandler php7-fcgi-sites .php
      Action php7-fcgi-sites /php7-fcgi-sites
      Alias /php7-fcgi-sites /usr/lib/cgi-bin/php7-fcgi-sites
     FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-sites -idle-timeout 60 -socket /var/run/php/php7.2-fpm.sites.mydomain.sock -pass-header Authorization

      <Directory /usr/lib/cgi-bin>
        Require all granted
      </Directory>
    </IfModule>

    <Directory /srv/www/sites/html>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Require all granted
    </Directory>

então

sudo a2enmod actions
sudo service apache2 restart

Mas o PHP não é interpretado ao executar scripts, as páginas são exibidas como texto simples.
Alguém pode me dizer o que está errado no meu ambiente?

Nota: eu o configurei exatamente da mesma maneira no meu servidor Ubuntu 16.04 e ele funciona bem.

    
por Duddy67 29.04.2018 / 09:26

5 respostas

0

Finalmente, não há necessidade de instalar o pacote libapache2-mod-fastcgi .
O truque ocorre no arquivo etc/apache2/sites-available/sites.mydomain.conf (veja meu exemplo acima).
Substitua a parte <IfModule mod_fastcgi.c> por

<FilesMatch "\.php$">
   SetHandler "proxy:unix:///var/run/php/php7.2-fpm.sites.mydomain.sock|fcgi://sites/"
</FilesMatch>

e pronto.
Espero que ajude.

    
por Duddy67 09.10.2018 / 09:42
5

Eu infelizmente aceitei o conselho das respostas aqui, que são incorretas ou tangenciais.

Depois de uma pequena escavação, percebi que o módulo em questão (proxy_fcgi) é, na verdade, parte do biônico pacote apache2-bin

então tudo o que era necessário era:

a2enmod proxy_fcgi
    
por Rowy 17.05.2018 / 03:46
2

Então ... eu fiz algumas pesquisas sobre isso.

Primeiro, parece que o mod_fcgid é a versão gratuita do mod_fastcgi, mas envia menos pedidos por stream, então é mais lento.

Mas ambos parecem estar desatualizados, e parece que o pacote libapache2-mod-fastcgi foi extraído do Debian por várias razões: link

No entanto, a partir do apache 2.4.10, é melhor usar o módulo mod_proxy_fcgi com o php fpm. link

Espero que isso ajude a esclarecer as coisas. A maioria das guias do php-fpm não parece estar atualizada para uso do mod_proxy_fcgi ainda, então pode estar causando confusão.

    
por az4th 18.05.2018 / 20:02
0

Pelo que eu entendi, pode ser que libapache2-mod-fastcgi package não esteja disponível para biônica ainda. Como tal, não há módulo fastcgi disponível para o Apache2.

    
por Tommy Ngo 30.04.2018 / 07:23
0

Eu fiz o upgrade de 17.10 para 18.04 e as páginas estavam apenas carregando o conteúdo do arquivo php em vez de renderizar a página. Tudo o que precisei fazer foi atualizar meu arquivo /etc/apache2/mods-enabled/fastcgi.conf com o seguinte:

<IfModule mod_fastcgi.c>
  AddHandler php7-fcgi-sites .php
  Action php7-fcgi-sites /php7-fcgi-sites
  Alias /php7-fcgi-sites /usr/lib/cgi-bin/php7-fcgi-sites
 FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-sites -idle-timeout 60 -socket /var/run/php/php7.2-fpm.sock -pass-header Authorization

  <Directory /usr/lib/cgi-bin>
    Require all granted
  </Directory>
</IfModule>
    
por timmillwood 30.04.2018 / 09:07