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 (et sa variante gratuite CentOS) 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 (qui sert de base à cette page) : CentOS7 est livrée avec PHP5.4. Or, le support est terminé. RedHat patch encore PHP 5.4 pour combler les failles de sécurité. Mais on peut installer en parallèle PHP 7.x.
Le dépôt de Remi est sûr car Remi est un packageur officiel et fiable.
Tout d'abord, on s'assure que le dépôt EPEL est installé :
Ensuite, suivant la version de CentOS :
CentOS 8 :
CentOS 7 :
CentOS 6 :
Sur CentOS 8 : https://rpms.remirepo.net/enterprise/8/
Sur CentOS 7 : https://rpms.remirepo.net/enterprise/7/
Sur CentOS 6 : 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 7.3, on va utiliser les modules de dnf.
On va désactiver le module php de base et activer le module php:remi-73 :
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.
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.
Si vous avez installé PHP de cette manière sur CentOS :
Il suffit de préfixer chaque paquet de phpXX où XX est la version.
Voici un exemple pour installer PHP 7.1 sur CentOS 7 :
Ou en "one shot" avec les accolades :
Après toute modif recharger httpd pour prendre en compte le PHP nouvellement installé
Si on fait une page avec la fonction phpinfo, on obtient : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.1.32
À noter: les fichiers de config : /etc/opt/remi/phpXX/ où XX est la version de PHP. Exemple : /etc/opt/remi/php71
Merci à Rémi pour son travail : https://rpms.remirepo.net
Un assistant est dispo également pour simplifier les choses : https://rpms.remirepo.net/wizard/
- Introduction
- Initialiser le dépôt de Remi dans CentOS
- Liste des versions de PHP disponibles
- Remplacer la version par défaut de PHP sur CentOS par une plus récente (plus simple)
- Installation d'une autre version de PHP sur CentOS à côté d'un autre PHP avec les collections (plus compliqué)
- Notes supplémentaires
Introduction
Les distributions Linux d'Entreprise, dont fait partie RedHat (et sa variante gratuite CentOS) 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 (qui sert de base à cette page) : CentOS7 est livrée avec PHP5.4. Or, le support est terminé. RedHat patch encore PHP 5.4 pour combler les failles de sécurité. Mais on peut installer en parallèle PHP 7.x.
Le dépôt de Remi est sûr car Remi est un packageur officiel et fiable.
Initialiser le dépôt de Remi dans CentOS
Tout d'abord, on s'assure que le dépôt EPEL est installé :
Code BASH :
yum install epel-release
Ensuite, suivant la version de CentOS :
CentOS 8 :
Code BASH :
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
CentOS 7 :
Code BASH :
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS 6 :
Code BASH :
yum install https://rpms.remirepo.net/enterprise/remi-release-6.rpm
Liste des versions de PHP disponibles
Sur CentOS 8 : https://rpms.remirepo.net/enterprise/8/
Sur CentOS 7 : https://rpms.remirepo.net/enterprise/7/
Sur CentOS 6 : https://rpms.remirepo.net/enterprise/6/
Remplacer la version par défaut de PHP sur CentOS par une plus récente (plus simple)
CentOS 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 7.3, on va utiliser les modules de dnf.
On va désactiver le module php de base et activer le module php:remi-73 :
Code BASH :
dnf module disable php dnf module install php:remi-7.3
Puis, si PHP est déjà installé :
Code BASH :
dnf upgrade
Sinon, par exemple, on installe les paquets PHP comme sur une CentOS classique :
Code BASH :
dnf 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.
CentOS 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.
Installation d'une autre version de PHP sur CentOS à côté d'un autre PHP avec les collections (plus compliqué)
Si vous avez installé PHP de cette manière sur CentOS :
Code BASH :
yum install php php-pdo php-gd
Il suffit de préfixer chaque paquet de phpXX où XX est la version.
Voici un exemple pour installer PHP 7.1 sur CentOS 7 :
Code BASH :
yum install php71-php php71-php-pdo php71-php-gd
Ou en "one shot" avec les accolades :
Code BASH :
yum install php71-{php,php-pdo,php-gd}
Après toute modif recharger httpd pour prendre en compte le PHP nouvellement installé
Code BASH :
systemctl reload httpd
Si on fait une page avec la fonction phpinfo, on obtient : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.1.32
À noter: les fichiers de config : /etc/opt/remi/phpXX/ où XX est la version de PHP. Exemple : /etc/opt/remi/php71
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/