Installer plusieurs versions PHP

17
installer plusieurs versions PHP

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