Lister les modules PHP installés sur un serveur Linux

I. Présentation

Dans ce tutoriel, nous allons voir comment lister les modules PHP installés (et chargés) sur un serveur Linux, afin de voir quels sont les modules accessibles par le serveur Web. Cette manipulation très simple est pratique lorsque l'on se demande si un module PHP est bien installé et bien chargé, mais aussi pour identifier s'il manque le paquet correspond à un module chargé dans le fichier php.ini.

Dans cet exemple, je vais m'appuyer sur un serveur sous Debian 11, avec PHP 7.4 installé, mais si vous utilisez PHP 8.X, cela fonctionnera également.

II. Lister les modules PHP chargés (et compilés)

À partir de la console sous Linux, il y a un excellent moyen de lister les modules chargés et compilés sur le serveur local sur lequel on se trouve, grâce à cette commande toute simple :

php -m

Cette commande va tout simplement retourner une liste de modules, comme celle sur mon serveur :

php -m

Cette liste peut s'avérer assez longue, donc grâce à la commande "grep" on va pouvoir ajouter un filtre sur le résultat de la commande "php -m". Par exemple, si l'on veut vérifier la présence du module "curl" dans la liste, on va exécuter :

php -m | grep -i curl

Si la commande retourne un résultat, c'est que le module est dans la liste retournée par "php -m", sinon c'est qu'il n'est pas chargé sur le serveur. Un module qui n'est pas chargé n'est peut-être tout simplement pas activé dans le fichier de configuration "php.ini". Par contre, s'il est bien activé, c'est peut-être que le paquet n'est pas installé sur le serveur web : c'est pour cette raison que l'on peut avoir besoin de regarder la liste des paquets installés sur la machine.

III. Lister les paquets PHP

Sur une machine Debian, la commande "dpkg" permet d'obtenir des informations sur les paquets, y compris les paquets installés sur la machine locale. Grâce à l'option "--get-selections", on va pouvoir faire une recherche, donc dans notre cas il faut qu’on liste tous les paquets avec le terme "php". Ce qui donne :

dpkg --get-selections php*

Dans la commande ci-dessus, l'astérisque est important pour rechercher tous les paquets dont le nom commence par "php". Dans la liste des résultats, je vois bien le paquet "php-curl" correspondant à ma requête précédente, ce qui est cohérent.

D'ailleurs, on pourrait affiner le résultat de la commande dpkg sur le même principe que nous l'avions fait précédemment grâce à "grep" :

dpkg --get-selections php* | grep -i curl

Une autre écriture consiste à récupérer la liste de tous les paquets puis à filtrer directement avec "grep", ce qui donne :

dpkg --get-selections | grep -i php

Si vous utilisez plutôt Rocky Linux (la distribution qui remplace CentOS...), alors c'est Yum qu'il faudra solliciter. Voici un exemple :

yum list installed | grep -i php

Voilà, de cette façon vous avez l'embarras du choix ! Avec ces deux commandes, vous êtes en mesure de visualiser les paquets installés et chargés ! S'il vous manque un paquet, une commande du style "apt-get install" suivie du nom du paquet devrait régler l'affaire !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

2 thoughts on “Lister les modules PHP installés sur un serveur Linux

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.