Installer PHP8.0 et PHP8.0-FPM sur Debian

php8.0

Dans cet article nous allons voir comment installer PHP8 et PHP8-fpm, ce tuto s’applique aussi à une migration de PHP7.4 Installer PHP7.2 et PHP7.2-FPM sur Debian vers 8. La procédure n’a pas évolué.

Note :
Sur Debian l’installation a été faite sur la version Buster

Choix du dépôt

Nous allons utiliser le dépôt de Ondrey Sury.

Commencer par passer sudo sur votre machine pour ajouter la nouvelle source des paquets PHP, pour ensuite les installer.

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list
apt-get update

Installation de PHP8.0

Nous allons installer PHP8.0, l’ensemble des principales dépendances nécessaires et le paquet FPM.

Note : php8.0-json n’est pas disponible, si vous avez besoin de cette extension il est préférable de rester en version 7.4

apt-get install php8.0 php8.0-opcache libapache2-mod-php8.0 php8.0-mysql php8.0-curl php8.0-gd  php8.0-intl php8.0-mbstring php8.0-xml php8.0-zip php8.0-fpm php8.0-readline

Redémarrons Apache

service apache2 restart

A ce stade PHP8.0 est installé, vous pouvez vérifier l’installation via un phpinfo à mettre dans un fichier PHP

<?php

phpinfo();

Vérification de la version cli

La commande php -v  doit vous donner le résultat suivant :

php8.0-cli

Activation de PHP8.0-FPM

Le module PHP a l’inconvénient de surcharger le serveur, car chaque process Apache est rattaché à un moteur PHP complet. L’utilisation de PHP-FPM permet de résoudre ce problème. En effet PHP-FPM est lancé en tant que processus séparé du serveur http. Il peut donc être lancé avec un (ou plusieurs) comptes, différents de celui utilisé par le serveur http, afin d’améliorer la sécurité, ou d’utiliser des paramétrages PHP différents selon les différents pools de connexions utilisés.

Attention l’ajout de PHP-FPM ne semble fonctionner correctement qu’à partir de la version d’Apache 2.4.9, avant cette version, Apache ne pouvait pas utiliser les sockets Unix pour communiqer correctement avec le serveur PHP-FPM

Il faut donc activer le module proxy_fcgi, setenvif, désactiver le module PHP, et activer la conf PHP8.0-FPM

a2enmod proxy_fcgi setenvif
a2enconf php8.0-fpm
a2dismod php8.0

Puis allons redémarrer les services apache2 et php8.0-fpm

systemctl reload apache2

systemctl restart php8.0-fpm

Si vous ré-affichez votre phpinfo, vous verrez que PHP8.0-FPM est bien activé et fonctionne.

phpinfo-php8.0