Il est possible d'affecter des moteurs PHP de différentes versions aux hôtes virtuels Apache. Pour cela
Depuis le compte root :
# Installation des prérequis apt install -y apt-transport-https ca-certificates curl gnupg2 lsb-release # Importer la clé publique du dépôt curl -fsSL "https://packages.sury.org/php/apt.gpg" | gpg --dearmor -o /usr/share/keyrings/sury-php.gpg # Ajouter le dépôt aux sources APT du serveur echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list # MAJ de l'index des paquets apt update
Installer la ou les versions souhaitées du moteur PHP :
apt install -y php8.0-fpm
Vérifier l'état des services PHP-FPM pour les versions installées et les démarrer si besoin :
systemctl status php8.0-fpm.service systemctl enable --now php8.0-fpm
Le serveur Apache doit être configuré pour utiliser le module proxy fast cgi, on peut associer un moteur PHP par défaut :
a2enmod proxy_fcgi setenvif a2enconf php8.0-fpm a2enmod headers env dir mime rewrite actions systemctl reload apache2
Chaque hôte virtuel peut ensuite redéfinir quel service PHP-FPM il doit contacter. Mettre à jour le fichier de configuration de l’hôte virtuel Apache :
<IfModule !mod_php8.c>
<IfModule proxy_fcgi_module>
<FilesMatch "\.ph(ar|p|tml)$">
SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</IfModule>
Recharger la configuration :
systemctl status apache2.service