Voici le troisième volet dans notre série d’articles sur le serveur Web Apache. Les deux précédents articles étaient consacrés à l’installation d’Apache et à la configuration des hôtes virtuels. Aujourd’hui nous allons voir de plus près l’installation et la configuration de PHP, qui n’est pas tout à fait triviale sous Rocky Linux, notamment depuis l’introduction des modules depuis Red Hat Enterprise Linux 8.0.
PHP (PHP Hypertext Preprocessor) est un langage de programmation interprété et libre, spécialement conçu pour le développement d’applications web. Actuellement, PHP fait tourner près de 80 % des sites web de la planète. PHP est au cœur d’applications libres comme WordPress, Dolibarr, OwnCloud et beaucoup d’autres.
Choisir une version de PHP
Tout comme Red Hat Enterprise Linux en amont, Rocky Linux fournit plusieurs versions concurrentes de PHP depuis l’introduction des modules DNF. Cette façon de fonctionner a créé pas mal de confusion auprès des administrateurs, à en juger par ce qu’on peut lire sur les blogs divers et variés. Une petite mise au point s’impose donc.
Pour commencer, affichez la liste des versions disponibles de PHP :
# dnf module list php AppStream Name Stream Profiles Summary php 7.2 [d] 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
Dans la configuration par défaut, Rocky Linux fournit PHP 7.2, une version qui est déjà obsolète au moment où j’écris ces lignes. La documentation de Red Hat offre une vue d’ensemble sur les différents Application Streams et leurs cycles de support respectifs.
Notons ici que PHP 7.4 se distingue par un statut de Full Life Application Stream Release, ce qui signifie que cette version sera supportée jusqu’à la fin du cycle de Rocky Linux 8 en mai 2029. On va donc opter pour cette version :
# dnf module -y reset php # dnf module -y enable php:7.4
Avant d’héberger une application PHP sur votre serveur, vérifiez d’abord les prérequis en termes de versions supportées de PHP. Dans certains cas de figure, il vous faudra opter pour une version plus récente – ou plus ancienne – de PHP.
Installer PHP
Partant de là, on va procéder à une installation typique de PHP avec les modules les plus courants :
# dnf module -y install php:7.4/common
Le profil d’installation common
installe les paquets suivants :
php-cli
php-common
php-fpm
php-json
php-mbstring
php-xml
On vérifie si l’on a bien récupéré la bonne version :
# php -v PHP 7.4.30 (cli) (built: Jun 7 2022 08:38:19) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
Mise en service
Une fois que PHP est installé, il suffit de redémarrer Apache :
# systemctl restart httpd
Red Hat Enterprise Linux 8.0 a déprécié mod_php
en faveur de PHP-FPM (FastCGI Process Manager), qui est configuré par défaut :
# cat /usr/lib/systemd/system/httpd.service.d/php-fpm.conf
[Unit]
Wants=php-fpm.service
# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2023-05-03 09:05:10 CEST; 8min ago
Main PID: 2029875 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 23640)
Memory: 19.7M
CGroup: /system.slice/php-fpm.service
├─2029875 php-fpm: master process (/etc/php-fpm.conf)
├─2029876 php-fpm: pool www
├─2029877 php-fpm: pool www
├─2029878 php-fpm: pool www
├─2029879 php-fpm: pool www
└─2029880 php-fpm: pool www
May 03 09:05:09 sd-155842 systemd[1]: Starting The PHP FastCGI Process Manager...
May 03 09:05:10 sd-155842 systemd[1]: Started The PHP FastCGI Process Manager.
Pour tester PHP, je vais éditer une page /var/www/default/html/phpinfo.php
comme ceci :
<?php phpinfo(); ?>
J’affiche la page dans un navigateur web :
Configuration initiale de PHP
Le fichier /etc/php.ini
contient la configuration de PHP. On peut commencer par définir le fuseau horaire du serveur, nécessaire pour le bon fonctionnement de certaines applications. Au lieu d’éditer ce fichier directement, on va copier la stance correspondante dans un fichier /etc/php.d/date.ini
en l’éditant comme ceci :
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Paris
Rechargez Apache et PHP-FPM :et vérifier les données correspondantes dans la page qui affiche les infos PHP :
# systemctl reload httpd php-fpm
Rafraîchissez la page qui affiche les infos PHP et vérifiez les données correspondantes :
Utiliser MariaDB à partir de PHP
Pour utiliser le serveur de bases de données MariaDB à partir de PHP, il suffit d’installer le module correspondant et de charger la configuration :
# dnf install -y php-mysqlnd # systemctl reload httpd php-fpm
Lire la suite : Certificats SSL/TLS gratuits avec Certbot
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
0 commentaire