Red Hat, Alma Linux, CentOS : Installer une autre version de PHP grâce aux modules
Table des matières
Les distributions Linux d'Entreprise, dont fait partie RedHat ont pour but de durer dans le temps et d'être supportées sur du long terme. De fait, les versions de logiciels sont souvent arrêtées pour garantir une grande stabilité et compatibilité des applicatifs installés. Parfois, en 10 ans, les versions évoluent.
Prenons exemple : RHEL9 est livrée avec PHP8.0.30. Cette version reste fixe et n'évolue pas sauf gros problème de sécurité.
Grâce au dépôt de Remi, il sera possible d'installer une autre version de PHP ainsi que des modules PHP supplémentaires.
Il y aura plus de mises à jour, et les versions de PHP seront suivies.
Notons que ce dépôt est sûr car Remi est un packageur officiel de Red Hat !
Tout d'abord, on s'assure que le dépôt EPEL est installé : https://www.linuxtricks.fr/wiki/rhel-et-derivees-ajouter-des-depots-supplementaires
Ensuite installer le dépôt de la version de votre système :
Pour info, voici la liste des versions de PHP disponibles chez remi :
Sur EL 10 et dérivées : https://rpms.remirepo.net/enterprise/10/
Sur EL 9 et dérivées : https://rpms.remirepo.net/enterprise/9/
Sur EL 8 et dérivées : https://rpms.remirepo.net/enterprise/8/
Sur EL 7 et dérivées : https://rpms.remirepo.net/enterprise/7/
Sur EL 6 et dérivées : https://rpms.remirepo.net/enterprise/6/
Il est nécessaire d'installer les Yum utils :
Les paquets à installer portent le même nom que les paquets officiels.
Par exemple, pour installer les paquets de PHP 8.2, on va utiliser les modules de dnf.
On peut lister les modules disponibles avec :
Exemple avec RHEL 8.7 et Dépôt de remi :
Avec EL 10, le système ne proposant plus de modules nativement, seuls ceux de remi sont affichés :
Pour basculer de branche, on pourra utiliser la commande suivante (Exemple pour basculer sur la version 8.2 offerte par Remi) :
Grâce à switch-to, si PHP était déjà installé, les composants sont automatiquement mis à jour (ou rétrogradés) vers la version souhaitée.
Si PHP n'était pas encore installé, on installera PHP comme d'habitude avec les noms classiques des paquets :
On recharge le service httpd et php-fpm après chaque installation/mise à jour pour prendre en compte les modifications !
Les fichiers de config sont au même endroit.
Sur RHEL 10 et dérivées si on souhaite revenir à la version par défaut de PHP, on désactivera le flux de module PHP via :
Il est nécessaire d'installer les Yum utils :
Les paquets à installer portent le même nom que les paquets officiels.
Par exemple, pour installer les paquets de PHP 7.3, on active le dépôt remi-php73 :
Puis, si PHP est déjà installé :
Sinon, par exemple, on installe les paquets PHP comme sur une CentOS classique :
Comme d'habitude, on recharge le service httpd après chaque installation/mise à jour pour prendre en compte les modifications !
Les fichiers de config sont au même endroit.
Merci à Rémi pour son travail : https://rpms.remirepo.net
Un assistant est dispo également pour simplifier les choses : https://rpms.remirepo.net/wizard/
Ce tutoriel est vérifié avec RHEL, CentOS, AlmaLinux.
Introduction
Les distributions Linux d'Entreprise, dont fait partie RedHat ont pour but de durer dans le temps et d'être supportées sur du long terme. De fait, les versions de logiciels sont souvent arrêtées pour garantir une grande stabilité et compatibilité des applicatifs installés. Parfois, en 10 ans, les versions évoluent.
Prenons exemple : RHEL9 est livrée avec PHP8.0.30. Cette version reste fixe et n'évolue pas sauf gros problème de sécurité.
Grâce au dépôt de Remi, il sera possible d'installer une autre version de PHP ainsi que des modules PHP supplémentaires.
Il y aura plus de mises à jour, et les versions de PHP seront suivies.
Notons que ce dépôt est sûr car Remi est un packageur officiel de Red Hat !
Initialiser le dépôt de Remi
Tout d'abord, on s'assure que le dépôt EPEL est installé : https://www.linuxtricks.fr/wiki/rhel-et-derivees-ajouter-des-depots-supplementaires
Ensuite installer le dépôt de la version de votre système :
Code BASH :
dnf install https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E %rhel).rpm
Pour info, voici la liste des versions de PHP disponibles chez remi :
Sur EL 10 et dérivées : https://rpms.remirepo.net/enterprise/10/
Sur EL 9 et dérivées : https://rpms.remirepo.net/enterprise/9/
Sur EL 8 et dérivées : https://rpms.remirepo.net/enterprise/8/
Sur EL 7 et dérivées : https://rpms.remirepo.net/enterprise/7/
Sur EL 6 et dérivées : https://rpms.remirepo.net/enterprise/6/
Remplacer la version par défaut de PHP par une plus récente
EL 10, 9 et 8
Il est nécessaire d'installer les Yum utils :
Code BASH :
dnf install dnf-utils
Les paquets à installer portent le même nom que les paquets officiels.
Par exemple, pour installer les paquets de PHP 8.2, on va utiliser les modules de dnf.
On peut lister les modules disponibles avec :
Code BASH :
dnf module list php
Exemple avec RHEL 8.7 et Dépôt de remi :
Code :
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
Name Stream Profiles Summary
php 7.2 [d] [e] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
Aide : [d]éfaut, [e]activé, [x]désactivé, [i]nstallé
Avec EL 10, le système ne proposant plus de modules nativement, seuls ceux de remi sont affichés :
Code TEXT :
Remi's Modular repository for Enterprise Linux 10 - x86_64 Name Stream Profiles Summary php remi-7.4 common [d], devel, minimal PHP scripting language php remi-8.0 common [d], devel, minimal PHP scripting language php remi-8.1 common [d], devel, minimal PHP scripting language php remi-8.2 common [d], devel, minimal PHP scripting language php remi-8.3 common [d], devel, minimal PHP scripting language php remi-8.4 common [d], devel, minimal PHP scripting language Aide : [d]éfaut, [e]activé, [x]désactivé, [i]nstallé
Pour basculer de branche, on pourra utiliser la commande suivante (Exemple pour basculer sur la version 8.2 offerte par Remi) :
Code BASH :
dnf module switch-to php:remi-8.2
Grâce à switch-to, si PHP était déjà installé, les composants sont automatiquement mis à jour (ou rétrogradés) vers la version souhaitée.
Si PHP n'était pas encore installé, on installera PHP comme d'habitude avec les noms classiques des paquets :
Code BASH :
dnf install php php-pdo php-gd
On recharge le service httpd et php-fpm après chaque installation/mise à jour pour prendre en compte les modifications !
Les fichiers de config sont au même endroit.
Sur RHEL 10 et dérivées si on souhaite revenir à la version par défaut de PHP, on désactivera le flux de module PHP via :
Code BASH :
dnf module disable php
EL 6 et 7
Il est nécessaire d'installer les Yum utils :
Code BASH :
yum install yum-utils
Les paquets à installer portent le même nom que les paquets officiels.
Par exemple, pour installer les paquets de PHP 7.3, on active le dépôt remi-php73 :
Code BASH :
yum-config-manager --enable remi-php73
Puis, si PHP est déjà installé :
Code BASH :
yum upgrade
Sinon, par exemple, on installe les paquets PHP comme sur une CentOS classique :
Code BASH :
yum install php php-pdo php-gd
Comme d'habitude, on recharge le service httpd après chaque installation/mise à jour pour prendre en compte les modifications !
Les fichiers de config sont au même endroit.
Notes supplémentaires
Merci à Rémi pour son travail : https://rpms.remirepo.net
Un assistant est dispo également pour simplifier les choses : https://rpms.remirepo.net/wizard/
