Installer une extension PHP sous Windows
Sur Windows, vous avez deux moyens de charger une extension PHP :
soit vous la compilez dans PHP, soit vous chargez une DLL. Charger une
extension précompilée est la méthode la plus pratique et la plus recommandée.
Pour charger une extension, vous devez disposer de son fichier ".dll" sur votre système.
Toutes les extensions sont automatiquement et périodiquement compilées par le groupe PHP
(voyez la section de téléchargements).
Pour compiler une extension dans PHP, reportez-vous à la
documentation sur
la compilation des sources.
Pour compiler une extension autonome, (c'est-à-dire un fichier DLL), reportez-vous
documentation sur
la compilation des sources. Si le fichier DLL est absent de votre distribution
PHP et de PECL, il vous faudra la compiler avant de pouvoir l'utiliser.
Où trouver une extension ?
Les extensions PHP sont généralement appelées "php_*.dll" (où les astérisques
représentent le nom de l'extension) et elles sont rangées dans le dossier
"PHP\ext".
PHP est livré avec les extensions qui sont les plus utiles à la majorité des utilisateurs.
Elles sont appelées des extensions cœur, ou "core".
Cependant, si vous avez besoin de fonctionnalités qui ne sont pas fournies par
une extension cœur, vous pourriez quand même les trouver dans
» PECL. Le
PHP Extension Community Library (PECL, aussi dit Bibliothèque d'Extensions Communautaires de PHP)
est un dépôt de code pour les extensions PHP, qui fournit un annuaire de toutes les
extensions connues, et un service d'hébergement pour télécharger et
développer ces extensions.
Si vous avez développé une extension pour votre propre usage, vous pourriez avoir envie
de l'héberger sur PECL, pour que tous ceux qui ont eu le même problème que vous, puissent
avoir accès à la même solution. Cela vous donne de bonnes chances d'avoir des retours
de la communauté, et, peut-être, des remerciements, des rapports de bugs, et même des
correctifs. Avant que vous n'envoyiez votre extension sur les serveurs PECL, il est
recommandé de lire » PECL submit.
Quelles extensions télécharger ?
Souvent, vous trouverez plusieurs versions de chaque DLL :
-
Différents numéros de versions (au moins, les deux premiers chiffres doivent être les mêmes)
-
Différentes configurations de sécurité de threads
-
Différentes architectures de processeurs (x86, x64...)
-
Différentes configurations de débogage
-
etc.
Il est recommandé de choisir les extensions pour qu'elles soient adaptées
à la machine serveur sur laquelle vous utilisez PHP. Le script suivant
va vous afficher toutes vos configurations PHP :
Ou bien, en ligne de commande :
drive:\\path\to\php\executable\php.exe -i
Charger une extension
Le moyen le plus courant pour charger une extension PHP est de l'inclure dans votre
fichier de configuration php.ini. Notez que de nombreuses extensions
sont déjà présentes dans le fichier php.ini et que vous avez
simplement à supprimer le point-virgule pour les activer.
À partir de PHP 7.2.0, le nom de l'extension peut être utilisé à la place
du nom de l'extension. Comme il est indépendant de l'os et plus facile, en
particulier pour les nouveaux arrivants, il devient la manière recommandée
de spécifier des extensions à charger. Les noms de fichiers restent pris en
charge pour la compatibilité avec les versions antérieures.
;extension=php_extname.dll
extension=php_extname.dll
; Dans PHP 7.2 et supérieur, préférer :
extension=extname
zend_extension=another_extension
Cependant, certains serveurs Web sont déroutants, car ils n'utilisent pas le fichier
php.ini rangé avec votre exécutable PHP. Pour en savoir plus sur votre véritable
php.ini, recherchez son dossier dans le fichier
phpinfo():
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\5.2\php.ini
Après activation d'une extension, sauvegardez le fichier php.ini, et
relancez le serveur Web, puis vérifiez à nouveau le fichier phpinfo().
La nouvelle extension devrait y avoir sa section.
Résolution de problèmes
Si l'extension n'apparaît pas dans le fichier phpinfo(),
vous devriez jeter un œil dans les logs pour savoir d'où vient le problème.
Si vous utilisez PHP en ligne de commande (CLI), l'erreur de chargement de l'extension
devrait être lisible directement sur l'écran.
Si vous utilisez PHP sur un serveur Web, la position et le format des logs
varient grandement d'un serveur à l'autre. Lisez la documentation de votre
serveur Web pour savoir où ils sont : PHP ne peut pas vous aider pour cela.
Les problèmes les plus courants sont la localisation du fichier DLL et
les DLLs dont il dépend, la valeur de la directive
"extension_dir"
dans le php.ini et les incohérences de compilations.
Si le problème est une incohérence de compilation, vous avez probablement téléchargé
une mauvaise DLL. Essayez d'en charger une nouvelle, avec les bonnes configurations pour
votre serveur. phpinfo() vous sera alors très utile.