4.Configuration et environnement d'exécution de PHP

4.2.Configuration de PHP

4.2.4.Gestion des modules PHP

4.2.4.1.Introduction

Bon nombre des fonctionnalités offertes par PHP le sont en fait par des extensions: des modules. PHP profite ainsi des multiples bibliothèques écrites en langage C pour nous fournir ces services. PHP étant modulaire, ces extensions peuvent être chargées ou non, selon les besoins.
rem
  • Ne pas charger un module permet de gagner en performance (en occupation mémoire) et peut permettre de gagner en sécurité.
Les modules (potentiellement) disponibles seront ceux intégrés au moment de la compilation de PHP ou bien présent sur le serveur sous forme de bibliothèques dynamiques. L'activation ou non de ces modules se fait, quant à elle, via le fichier php.ini[en savoir plus].

4.2.4.2.Inventaire des modules installés

La première chose que vous aurez à faire sera probablement de déterminer quels sont les modules activés par votre configuration PHP. Cela peut se faire via la fonction phpinfo()[en savoir plus] (typiquement pour une utilisation dans un serveur web) ou la commande $ php -i (pour une utilisation de PHP en ligne de commande). Ces commandes listent en effet (entre autres) les modules chargés.
Comme dans l'extrait suivant (capture du résultat retourné par phpinfo())
phpinfo modules
qui nous indique que dans la configuration web, les modules calendar, ctype et curl sont disponibles (et activés).
Et pour PHP utilisé en ligne de commande, $ php -i nous retourne (échantillon):
json

json support => enabled
json version => 1.5.0

libxml

libXML support => active
libXML Compiled Version => 2.9.1
libXML Loaded Version => 20901
libXML streams => enabled
ce qui nous permet de constater que les modules JSON et libXML sont disponibles.

4.2.4.3.Installation d'un module pré-compilé

La solution la plus simple (quand c'est possible) est d'utiliser des modules pré-compilés. Il s'agit de bibliothèques dynamiques. C'est à dire des fichiers portant (généralement) une extension .dll sous windows et .so sous Linux.
L'équipe PHP gère officiellement certains de ces modules et peut en proposer d'autres plus expérimentaux (ou obsolètes). Les extensions officiellement supportées sont fournies dans une archive nommée PECL et sont disponibles sur la page de téléchargement du site officiel[où?].
Ces modules sont généralement inclus dans les kits d'installation. Avec Wamp Server, par exemple, vous les trouverez dans le dossier bin/php/php<version>/ext/.
Une fois la bibliothèque dynamique récupérée il vous faut la copier dans le répertoire indiqué par le paramètre extension_dir du fichier php.ini[où?]. Notez qu'il est possible que le module s'y trouve déjà même si il n'est pas "activé" dans PHP.
Pour que le moteur PHP prenne en compte ce module, encore faut-il qu'il soit déclaré dans le fichier php.ini[où?]. Pour cela, il suffit d'ajouter une ligne contenant le mot clé extension suivi du signe égal '=' puis le nom de la bibliothèque (sans le chemin). Comme dans l'exemple suivant
extension=monmodule.dll ;sous windows
extension=monmdule.so ;sous linux
rem
  • Généralement, si vous avez utilisé un kit d'installation (sous windows) il suffit de décommenter la ligne correspondant au module (en supprimant le point-virgule ';' en début de ligne).