PHP 7.2 fastcgi не работает над сервером Ubuntu 18.04

Я только что установил ЛАМПУ на сервере Ubuntu 18.04, и я не могу заставить 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

затем

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

Мой виртуальный файл хоста: 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>

затем

sudo a2enmod actions
sudo service apache2 restart

Но PHP не интерпретируется при запущении скриптов, страницы отображены как простой текст.
Может кто-то говорить мне что случилось в моей установке?

Примечание: Я установил его точно тот же путь на моем сервере Ubuntu 16.04, и это хорошо работает.

6
задан 29 April 2018 в 22:01

5 ответов

Наконец нет никакой потребности установить 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>

и Вы сделаны.
Надежда это помогает.

3
ответ дан 23 November 2019 в 07:23

Я, к сожалению, послушал совет ответов здесь, который или неправильный, или tangental.

После небольшого рытья я понял, что рассматриваемый модуль (proxy_fcgi) является на самом деле частью бионического пакета apache2-мусорного-ведра

таким образом, все, что было необходимо, было:

a2enmod proxy_fcgi
8
ответ дан 23 November 2019 в 07:23

Так... Я сделал некоторое рытье на этом.

Во-первых, кажется, что mod_fcgid является бесплатной версией mod_fastcgi, но отправляет меньше запросов на поток, медленнее - также.

Но оба, кажется, довольно устарели, и кажется, что libapache2-mod-fastcgi пакет вытянули от Debian по различным причинам: https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=835374

Однако с апачских 2.4.10, лучше использовать mod_proxy_fcgi модуль с php fpm. https://serverfault.com/questions/783173/differences-between-mod-fastcgi-and-mod-proxy-fcgi

Надежда это помогает ясным вещам встать. Большинство руководств php-fpm вокруг, кажется еще, не обновляется для использования mod_proxy_fcgi, так мог бы вызывать беспорядок.

2
ответ дан 23 November 2019 в 07:23

Из того, что я собираюсь, это могло быть это libapache2-mod-fastcgi пакет еще не доступен для бионического. По сути, нет никакого fastcgi модуля, доступного для Apache2.

0
ответ дан 23 November 2019 в 07:23

Я обновил от 17,10 до 18,04, и страницы просто загружались с содержанием php файла вместо того, чтобы представить страницу. Все, что я должен был сделать, было обновить мой /etc/apache2/mods-enabled/fastcgi.conf файл со следующим:

<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>
0
ответ дан 23 November 2019 в 07:23

Другие вопросы по тегам:

Похожие вопросы: