Я только что установил ЛАМПУ на сервере 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, и это хорошо работает.
Наконец нет никакой потребности установить 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>
и Вы сделаны.
Надежда это помогает.
Я, к сожалению, послушал совет ответов здесь, который или неправильный, или tangental.
После небольшого рытья я понял, что рассматриваемый модуль (proxy_fcgi) является на самом деле частью бионического пакета apache2-мусорного-ведра
таким образом, все, что было необходимо, было:
a2enmod proxy_fcgi
Так... Я сделал некоторое рытье на этом.
Во-первых, кажется, что 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, так мог бы вызывать беспорядок.
Из того, что я собираюсь, это могло быть это libapache2-mod-fastcgi
пакет еще не доступен для бионического. По сути, нет никакого fastcgi модуля, доступного для Apache2.
Я обновил от 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>