Recherche de site Web

Comment installer php sur RHEL 8/CentOS 8 Linux


Dans les systèmes Linux RHEL 8/CentOS 8, la façon dont les logiciels sont organisés a changé : les paquets critiques sont désormais contenus dans le référentiel BaseOs, tandis que celui d’AppStream contient plusieurs versions de certaines des applications et langages de programmation les plus couramment utilisés, organisés en modules et mis à jour indépendamment du cycle de publication de la distribution. Cette stratégie a été adoptée afin d’éviter le problème de se retrouver coincé avec une certaine version trop obsolète ou trop récente d’un certain logiciel.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer PHP sur RHEL 8/CentOS 8
  • Que sont les modules logiciels dans RHEL 8/CentOS 8 ?
  • Comment installer et basculer entre les différentes versions du module PHP

Modules php disponibles sur RHEL 8

Configuration logicielle requise et conventions utilisées

Qu’est-ce que PHP ?

PHP (PHP : Hypertext Preprocessor) n’a pas besoin de beaucoup de présentations : ce langage de programmation à usage général a été créé à l’origine en 1994 par Rasmus Lerdorf et il est publié sous la licence PHP, en tant que logiciel open source. Son principal domaine d’application est le web, mais le langage peut être utilisé dans d’autres contextes. RHEL 8/CentOS 8 est livré avec deux référentiels principaux activés : BaseOs et AppStream.

Le premier contient les paquets core
de la distribution, qui suit le cycle de vie des distributions elles-mêmes ; La seconde contient différentes versions de plusieurs applications de l’espace utilisateur, qui sont mises à jour indépendamment de la distribution principale. Les logiciels contenus dans ce dernier sont organisés en modules. Chaque module fournit différentes versions d’une application, ce qui permet de basculer entre celles disponibles (mais pas de les installer simultanément). Dans ce tutoriel, nous allons voir à quel point il est facile d’installer PHP et de basculer entre les différentes versions de ce langage sur les distributions RHEL 8/CentOS 8.

Quelle version de PHP ?

Alors que la version 5.6 de PHP est désormais officiellement morte (elle a atteint la fin de vie le 1er janvier 2019), trois branches du langage de programmation sont actuellement maintenues : la 7.1, qui ne reçoit en réalité que des correctifs de sécurité et sera corrigée jusqu’au 1er décembre 2019, et les versions 7.2 et 7.3, qui seront prises en charge respectivement jusqu’au 30 novembre 2020 et au 6 décembre 2021.

La version de PHP fournie par défaut dans RHEL 8/CentOS 8, à partir du référentiel AppStream est 7.2.11, comme nous pouvons le vérifier en exécutant la commande php dnf info, qui renvoie le résultat suivant :

Available Packages
Name         : php
Version      : 7.2.11
Release      : 1.el8+2002+9409c40c
Arch         : x86_64
Size         : 1.5 M
Source       : php-7.2.11-1.el8+2002+9409c40c.src.rpm
Repo         : rhel-8-for-x86_64-appstream-beta-rpms
Summary      : PHP scripting language for creating dynamic web sites
URL          : http://www.php.net/
License      : PHP and Zend and BSD and MIT and ASL 1.0
Description  : PHP is an HTML-embedded scripting language. PHP attempts to make it
             : easy for developers to write dynamically generated web pages. PHP also
             : offers built-in database integration for several commercial and
             : non-commercial database management systems, so writing a
             : database-enabled webpage with PHP is fairly simple. The most common
             : use of PHP coding is probably as a replacement for CGI scripts.
             :
             : The php package contains the module (often referred to as mod_php)
             : which adds support for the PHP language to Apache HTTP Server.

Y a-t-il d’autres versions de PHP disponibles dans le référentiel AppStream ?. Pour répondre à cette question, nous pouvons exécuter une sous-commande dédiée de dnf, module, et demander des informations sur le module PHP, en utilisant l’action list :

sudo dnf module list php
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
Name                       Stream                        Profiles                                          Summary
php                        7.1                           devel, minimal, default [d]                       PHP scripting language
php                        7.2 [d]                       devel, minimal, default [d]                       PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Lors de l’exécution de la commande dnf module list, par défaut, tous les modules disponibles sont affichés. Pour limiter la requête à un module spécifique, nous fournissons le nom du module à la commande. Dans ce cas, nous pouvons voir qu’il existe deux flux pour le module PHP, couvrant les versions 7.1 et 7.2 du langage et les bibliothèques associées. Comme nous l’avons vu, cette dernière version est celle qui est installée par défaut : dans la sortie de la commande que nous exécutons ci-dessus, cela est mis en évidence par l’utilisation de la marque [d] dans la deuxième colonne, qui, comme spécifié dans la légende, signifie default.

Une autre partie intéressante de la sortie est la colonne Profils, où les profils disponibles pour un flux sont signalés. Plusieurs profils peuvent être installés simultanément et chacun d’entre eux comprend un ensemble différent de packages. La notation [d] est également utilisée ici pour marquer le profil par défaut sélectionné lors de l’installation du flux.

Pour installer le paquet d’un flux spécifique d’un module logiciel, nous devons utiliser la notation name :stream/profile. Par exemple, pour installer la version 7.1 de PHP, on peut exécuter :

sudo dnf module install php:7.1/default

Dans ce cas, nous aurions pu omettre le nom du profil, car la valeur par défaut est utilisée automatiquement si un autre n’est pas spécifié. Si nous utilisons la même commande que celle que nous avons exécutée ci-dessus, nous pouvons maintenant voir que le flux 7.1 est marqué par [e], qui signifie activé, et le profil par défaut du flux est marqué par [i], ce qui indique que le profil du flux est installé :

sudo dnf module list php
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
Name                      Stream                       Profiles                                             Summary
php                       7.1 [e]                      devel, minimal, default [d] [i]                      PHP scripting language
php                       7.2 [d]                      devel, minimal, default [d]                          PHP scripting language

Si nous avons installé un flux et que nous voulons passer à un autre des flux disponibles, nous pouvons simplement installer ce dernier : les paquets seront automatiquement mis à niveau ou déclassés, selon la situation. Pour passer au flux 7.2, par exemple, nous exécuterions :

sudo dnf module install php:7.2/default
=======================================================================================================================================================
 Package                    Arch                 Version                                     Repository                                           Size
=======================================================================================================================================================
Upgrading:
 php-common                 x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms               653 k
 php-mbstring               x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms               580 k
 php-xml                    x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms               188 k
 php-fpm                    x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms               1.6 M
 php-json                   x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms                73 k
 php-cli                    x86_64               7.2.11-1.el8+2002+9409c40c                  rhel-8-for-x86_64-appstream-beta-rpms               3.1 M
Switching module streams:
 php                                             7.1 -> 7.2

Transaction Summary
=======================================================================================================================================================
Upgrade  6 Packages

Total download size: 6.2 M
Is this ok [y/N]: y

De même, si nous voulons supprimer un flux de module spécifique, nous pouvons utiliser l’action de suppression au lieu de l’action « installer ». Cela provoque la suppression d’un flux : si nous spécifions un profil, seuls les packages appartenant à ce profil sont supprimés, sinon, tous les profils d’un flux sont intéressés par l’action. Par exemple, pour désinstaller tous les paquets appartenant à tous les profils du flux 7.2, il suffit d’exécuter :

sudo dnf module remove php:7.2

Pour supprimer uniquement les paquets liés au profil devel du même flux, à la place, nous exécuterions :

sudo dnf module remove php:7.2/devel

Conclusions

La nouvelle version de Red Hat Enterprise Linux s’accompagne d’un changement dans la façon dont les logiciels sont organisés. Le dépôt BaseOs contient les paquets qui représentent le cœur des distributions, et suivent son cycle de publication, celui d’AppStream à la place, contient des logiciels de l’espace utilisateur organisés en modules fournissant différentes versions, ou « flux » disponibles à l’installation : PHP est également fourni de cette façon.

Les versions de PHP disponibles par
par défaut dans RHEL 8/CentOS 8 sont 7.1.20 et 7.2.11. Il est possible d’installer d’autres versions du langage de programmation à partir de dépôts externes, comme Remi, mais je recommande de s’en tenir aux sources logicielles par défaut s’il n’est pas strictement nécessaire de faire autrement.

Articles connexes: