Dans le tutoriel installer un serveur web l’installation de PHP se fait via le paquet disponible. Vous n’aurez donc pas la dernière version qui à ce jour est PHP8.4 mais vous aurez la PHP8.2. Avec le tutoriel suivant vous pourrez installer plusieurs versions PHP et même des versions PHP7.x. Selon vos logiciels web utilisés il se peut qu’il ne fonctionne pour sous les versions PHP8.x et vous devez utiliser les PHP7.x.
Voyons maintenant comment procéder.
On commence par vérifier s’il n’y a pas de mise à jour à faire
apt update && apt full-upgrade -y
ensuite vous installez les dépendances dont a besoin le paquet de Sury puis vous installez le tout.
apt install -y apt-transport-https lsb-release ca-certificates wget
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" | tee /etc/apt/sources.list.d/php.list
une fois les 3 lignes entrées vous lancez une mise à jour. La dernière version du paquet, actuellement la PHP8.4, s’installera.
apt update && apt full-upgrade -y
La mise à jour terminée vous aurez la PHP8.2 (si vous avec installé PHP via Debian) et PHP8.4 installé.
Si vous voulez installer la version PHP7.4 il vous suffit de l’installer via la méthode habituelle
apt install php7.4 php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-igbinary php7.4-imagick php7.4-intl php7.4-mbstring php7.4-mysql php7.4-pgsql php7.4-readline php7.4-redis php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc php7.4-zip -y
activer plusieurs modules pour que votre service Apache2 puisse fonctionner avec plusieurs versions PHP
a2enmod actions fcgid alias proxy_fcgi
puis relancez apache2
systemctl restart apache2
dans les modules vous pouvez voir php7.4-fpm. C’est ce qui vous permet de tourner sur plusieurs versions. Donc pour chaque version que vous installerez vous devrez le lancer pour l’utiliser. Pour le démarrer vous lancez la commande
service php7.4-fpm start
vous pouvez vérifier son status en tapant
service php7.4-fpm status
ensuite dans le vhost de votre domaine où vous voulez que votre site tourne en PHP7.4 vous ajoutez
<FilesMatch \.php$>
# For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
puis vous relancez apache2
service apache2 restart
et normalement c’est fonctionnel.
N’oubliez pas que si vous changez des informations dans le php.ini vous devez le faire dans
/etc/php/7.4/fpm/php.ini
puis vous relancez avec
service php7.4-fpm restart
Définir une version par défaut
Si vous le voulez vous pouvez définir une version par défaut sur votre dédié. Pour se faire tapez
update-alternatives --config php
puis les options s’affichent avec celle qui a un * est celle par défaut.
Si vous voulez PHP7.4 vous tapez le chiffre en début de ligne puis validez. Faites attention à ce que tout vos services fonctionnent avec cette version.
Désactiver les versions PHP
Si vous voulez vous pouvez désactiver des versions PHP installé. Pour se faire vous tapez
a2dismod php8.2
a2dismod php8.4
...
et relancez apache2
systemctl restart apache2