Je viens d'installer LAMP sur un serveur Ubuntu 18.04 et je ne parviens pas à faire fonctionner PHP fastcgi. Voici mes paramètres:
Mon fichier 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
puis
Sudo service php7.2-fpm reload
Sudo service php7.2-fpm restart
Mon fichier hôte virtuel: 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>
puis
Sudo a2enmod actions
Sudo service Apache2 restart
Mais PHP n'est pas interprété lors de l'exécution de scripts, les pages sont affichées sous forme de texte brut.
Quelqu'un peut-il me dire ce qui ne va pas dans mon environnement?
Remarque: je le configure exactement de la même manière sur mon serveur Ubuntu 16.04 et tout fonctionne correctement.
Enfin, il n'est pas nécessaire d'installer le package libapache2-mod-fastcgi
.
L'astuce se déroule dans le fichier etc/Apache2/sites-available/sites.mydomain.conf
(voir mon exemple ci-dessus).
Remplacez la partie <IfModule mod_fastcgi.c>
par
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php/php7.2-fpm.sites.mydomain.sock|fcgi://sites/"
</FilesMatch>
et tu as fini.
J'espère que ça aide.
J'ai malheureusement pris l'avis des réponses ici, qui étaient incorrectes ou tangentes.
Après avoir creusé un peu, je me suis rendu compte que le module en question (proxy_fcgi) est en fait partie du paquet bionique Apache2-bin
donc tout ce qui était nécessaire était:
a2enmod proxy_fcgi
Alors ... j'ai creusé un peu là-dessus.
Premièrement, il semble que mod_fcgid soit la version gratuite de mod_fastcgi, mais envoie moins de demandes par flux, donc plus lentement.
Mais les deux semblent être relativement obsolètes et il semble que le paquetage libapache2-mod-fastcgi ait été extrait de Debian pour diverses raisons: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug= 835374
Cependant, depuis Apache 2.4.10, il est préférable d’utiliser le module mod_proxy_fcgi avec php fpm. https://serverfault.com/questions/783173/differences-between-mod-fodcgi-and-mod-proxy-fcgi
J'espère que cela aide à clarifier les choses. La plupart des guides php-fpm ne semblent pas encore être mis à jour pour l'utilisation de mod_proxy_fcgi, ce qui peut être source de confusion.
D'après ce que j'ai compris, il se peut que le paquet libapache2-mod-fastcgi
ne soit pas encore disponible pour bionic. En tant que tel, il n'y a pas de module fastcgi disponible pour Apache2.
J'ai mis à jour de 17.10 à 18.04 et les pages se chargeaient simplement du contenu du fichier php plutôt que de rendre la page. Tout ce que je devais faire était de mettre à jour mon fichier /etc/Apache2/mods-enabled/fastcgi.conf
avec les éléments suivants:
<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>