Installer des extensions PHP

Dans ce chapitre, je vais vous expliquer comment installer des extensions PHP.

Ce qui fait l’une des forces de PHP après que ce soit un langage de programmation simple à apprendre, c’est les extensions qu’ils proposent afin d’augmenter son nombre de fonctionnalités.

Les extensions permettent :

  • Ajouter des fonctionnalités comme la manipulation d’image, support de connexion aux bases de données
  • Optimisation avec un support du cache
  • Aide au développement
  • Sécurisation

La liste des extensions disponibles varient en fonction de la distribution Linux utilisée et de la version de PHP.

Pour afficher la liste des extensions disponibles sur le serveur Web utiliser l’une des commandes ci-dessous.

apt list php-[tab][tab]
apt iist php7.4-[tab][tab]

En fonction de l’extension, il faut utiliser l’une ou l’autre des commandes, certaines extensions sont spécifiques à la version de PHP et d’autre sont compatible avec plusieurs versions et aussi il faut prendre en compte les meta-package.

Dans la grande majorité des cas, l’installation des extensions est facile sauf pour celle qui sont « exotique ».

Si vous avez un doute, utiliser la commande suivante pour avoir les informations de dépendances :

apt-cache depend php-extension_name

Ci-dessous les dépendances pour l’extension php-redis :

Installer une extension PHP

Dans ce chapitre, je vais vous expliquer comment installer l’extension php-mysql qui permet d’utiliser les fonctions natives à php mysqli_xxxx() pour interagir avec un serveur MySQL/MariaDB.

Avant d’installer l’extension, aller sur la page d’information PHP et rechercher mysql sur la page, normalement le terme ne doit apparaitre que dans les crédits.

Non je ne me suis pas trompé de capture, vous allez comprendre après…

Pour installer l’extension php-mysql, entrer l’une des commandes ci-dessous au choix :

Ce qui nous donne en image :

Comme on peut le voir sur la capture ci-dessus, php-mysql est un meta-package et en réalité, c’est le paquet php7.4-mysql qui est installé. Un meta-package installe la version qui est maintenu par la distribution.

Si la version maintenue par Ubuntu au moment de la rédaction de ce chapitre avait été la version 8 de PHP, php-mysql aurait installé le paquet php8.0-mysql

Maintenant que php-mysql est installé, retourner sur le page d’information PHP et rechercher de nouveau le terme mysql.

Dès le début des informations, on peut déjà voir que des fichiers de configuration lié à l’extension sont chargés.

Dans la liste des directives, on trouve plusieurs sections liées à la configuration de l’extension.

Vous savez maintenant comment installer une extension pour PHP.

Les extensions PHP sur le serveur

Ce qui suit est surtout utile pour savoir où sont stocké les extensions sur votre serveur Web.

Les extensions utilisent plusieurs dossiers sur le serveur et ils sont propres à chaque version de PHP et mode d’exécution (CLI / FPM / Mod apache).

Ici, je vais me baser sur une installation FPM sur Ubuntu.

Le premier dossier qui va nous intéresser et le dossier mods-available qui se trouve à l’emplacement /etc/php/X-Y/.

SI on regarde dans le dossier, on trouve les fichiers de configuration des différentes extensions installées sur le serveur pour la version de PHP.

SI l’on regarde dans un fichier de configuration, par exemple mysqli.ini, on va trouver une directive du type extension=xxxxx.so.

Le fichier .so correspond au fichier de l’extension qui doit être chargé pour ajouter les fonctionnalités.

Maintenant je vous propose de voir le contenu du dossier /etc/php/X.Y/fpm/conf.d/.

Comme on peut le voir, ce dossier contient des liens symboliques vers les fichiers de configuration si se trouve dans le dossier mods-available (cela ressemble beaucoup au virtualhost non !). Les liens permettent d’activer le module.

Dernier chose que je vais vous expliquer sur les extensions PHP (il y aurait encore plein de chose à dire), c’est comment trouver l’emplacement des fichiers .so.

Depuis la page d’information PHP, chercher la directive extension_dir qui indique l’emplacement des extensions PHP pour cette version.

Comme on peut le voir ici, les fichiers sont dans le dossier /usr/lib/php/20190902.

Si on regarde le contenu du dossier /usr/lib/php/20190902, on retrouve bien les fichiers .so.

Quelles extensions PHP installées ?

Désoler dans cette formation, je ne vais pas pouvoir vous donnez la réponse, par contre je peux vous donnez un conseil, c’est d’installer seulement les extensions dont vous avez besoins pour deux raisons :

  • Les performances, un grand nombre d’extensions peu impactés les performances du serveur et donc de votre site internet.
  • La sécurité, plus d’extensions sont activées plus le nombre de failles potentielles est augmentée.

Maintenant pour connaitre les extensions dont vous avez besoin, il faut voir avec les prérequis des sites que vous allez installer ou avec le développeur de votre application.

Voici quelques liens vers les prérequis des CMS les plus connus :