PHP 7.2 fastcgi 在 Ubuntu 18.04 服务器上不起作用

Dud*_*y67 7 apache2 php7 fastcgi

我刚刚在 Ubuntu 18.04 服务器上安装了 LAMP,但我无法让 PHP fastcgi 工作。这是我的设置:

我的 fpm PHP 文件:/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
Run Code Online (Sandbox Code Playgroud)

然后

sudo service php7.2-fpm reload
sudo service php7.2-fpm restart
Run Code Online (Sandbox Code Playgroud)

我的虚拟主机文件: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>
Run Code Online (Sandbox Code Playgroud)

然后

sudo a2enmod actions
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

但是 PHP 在运行脚本时不被解释,页面显示为纯文本。
有人可以告诉我我的设置有什么问题吗?

注意:我在我的 Ubuntu 16.04 服务器上以完全相同的方式设置它并且它工作正常。

小智 8

不幸的是,我在这里接受了答案的建议,要么是不正确的,要么是切线的。

经过一番挖掘,我意识到有问题的模块(proxy_fcgi)实际上是仿生 apache2-bin 包的一部分

所以只需要:

a2enmod proxy_fcgi
Run Code Online (Sandbox Code Playgroud)


Dud*_*y67 4

最后就不需要安装这个libapache2-mod-fastcgi包了。
这个技巧发生在etc/apache2/sites-available/sites.mydomain.conf文件中(请参阅上面的示例)。
<IfModule mod_fastcgi.c>零件替换为

<FilesMatch "\.php$">
   SetHandler "proxy:unix:///var/run/php/php7.2-fpm.sites.mydomain.sock|fcgi://sites/"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

你就完成了。
希望能帮助到你。