PHPVoici 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

ImportantAvant 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 :

Infos PHP

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 :

Infos PHP

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

PHP MySQL

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.

 

Catégories : Serveur

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *