PHP sur RHEL-8
RHEL-8 Beta est annoncée et est disponible au téléchargement pour ceux qui veulent l'essayer.
C'est l'occation de faire un petit zoom sur l'installation de PHP et le fonctionnement des modules.
1. Installation
L'image ISO est disponible pour tous, voir le fichier README.
N'oubliez pas d'activer les dépôts beta
# dnf repolist repo id repo name status rhel-8-for-x86_64-appstream-beta-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) 4594 rhel-8-for-x86_64-baseos-beta-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS Beta (RPMs) 1686
2. Installation de PHP
PHP ne fait pas partie de BaseOS qui constitue le système de base, réduit au maximum, mais est disponible dans AppStream, c'est à dire en module.
# dnf module list Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) php 7.1 devel, minimal, defaul PHP scripting language t [d] php 7.2 [d] devel, minimal, defaul PHP scripting language t [d]
On observe que les version 7.1 et 7.2 (défaut) sont disponible
Installation de la version 7.1
# dnf module install php:7.1 Dependencies resolved. ========================================================================================================== Package Arch Version Repository Size ========================================================================================================== Installing group/module packages: php-cli x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 2.9 M php-common x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 624 k php-fpm x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 1.5 M php-json x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 70 k php-mbstring x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 547 k php-xml x86_64 7.1.20-2.el8+1700+11d526eb rhel-8-for-x86_64-appstream-beta-rpms 187 k Installing dependencies: httpd-filesystem noarch 2.4.35-6.el8+2089+57a79027 rhel-8-for-x86_64-appstream-beta-rpms 32 k nginx-filesystem noarch 1:1.14.0-3.el8+1631+ba902cf0 rhel-8-for-x86_64-appstream-beta-rpms 23 k Installing module profiles: php/default Enabling module streams: httpd 2.4 nginx 1.14 php 7.1 Transaction Summary ========================================================================================================== Install 8 Packages Total download size: 5.9 M Installed size: 20 M Is this ok [y/N]: y
On obtient :
# php -v PHP 7.1.20 (cli) (built: Jul 19 2018 06:17:27) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
On peut aussi passer facilement en 7.2 :
# dnf module install php:7.2 Dependencies resolved. ========================================================================================================== Package Arch Version Repository Size ========================================================================================================== Upgrading: php-cli x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 3.1 M php-common x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 653 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-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 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
Et on obtient :
# php -v PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
3. Utilisation en Web
3.1 avec Apache HTTP Server
Installation :
# dnf module install httpd
Activation des services :
# systemctl enable --now php-fpm # systemctl enable --now httpd
Page de tests :
# echo '<?php phpinfo();' >/var/www/html/info.php
Et dans le navigateur http://localhost/info.php
3.2 avec nginx
Installation :
# dnf module install nginx
Activation des services :
# systemctl enable --now php-fpm # systemctl enable --now nginx
Page de tests :
# echo '<?php phpinfo();' >/usr/share/nginx/html/info.php
Et dans le navigateur http://localhost/info.php
4. Conclusion
Les utilisateurs de Fedora ne seront pas surpris, car les travaux sur les paquets PHP réalisés depuis F19 bénéficient maintenant aux utilisateurs de RHEL :
- php-fpm utiliser par défaut
- httpd par défaut en MPM event, et php fonctionnant sans modification de configuration
- nginx disponible, et php fonctionnant sans modification de configuration
L'utilisation des modules devraient aussi améliorer le simplicité d'utilisation et la flexibilité du choix des versions utilisées, et évidement on s'attend à avoir de nouvelles versions plus rapidement (e.g. php 7.3).
Certains (comme moi) regretteront l'abandon des SCL, et donc la possibilité d'installer plusieurs versions en parallèle (qui reste possible en utilisant les conteneurs).