Existen dos maneras de cargar una extensión PHP en Windows: o bien compilarla en PHP, o bien cargar una DLL. Cargar una extensión precompilada es el método más práctico y recomendado.
Para cargar una extensión, su fichero .dll debe estar disponible en el sistema. Todas las extensiones son automáticamente y periódicamente compiladas por el grupo PHP (ver la sección de descargas).
Para compilar una extensión en PHP, consulte la documentación sobre la compilación de las fuentes.
Para compilar una extensión autónoma, (es decir, un fichero DLL), consulte la documentación sobre la compilación de las fuentes. Si el fichero DLL no está presente en la distribución PHP y PECL, puede ser necesario compilarlo antes de poder utilizarlo.
Las extensiones PHP generalmente se llaman php_*.dll (donde los asteriscos representan el nombre de la extensión) y se encuentran en la carpeta PHP\ext.
PHP se entrega con las extensiones que son más útiles para la mayoría de los usuarios. Se llaman extensiones integradas, o bundled.
Sin embargo, si las extensiones integradas no proporcionan la funcionalidad necesaria, una extensión que lo haga puede encontrarse en » PECL. La Biblioteca de Extensiones Comunitarias de PHP (PECL, también llamada Biblioteca de Extensiones Comunitarias de PHP) es un depósito para las extensiones PHP, proporcionando un directorio de todas las extensiones conocidas y facilidades de alojamiento para la descarga y el desarrollo de extensiones PHP.
Si una extensión ha sido desarrollada para un uso particular, puede ser alojada en PECL para que otras personas con las mismas necesidades puedan beneficiarse de ella. Un efecto secundario interesante es que es una buena oportunidad para recibir comentarios, (con un poco de suerte) agradecimientos, informes de errores y, a veces, correcciones. Antes de enviar una extensión para alojamiento en PECL, por favor lea » PECL submit.
A menudo hay varias versiones de cada DLL:
etc.
Se recomienda elegir las extensiones para que se adapten a la máquina servidor en la que se utiliza PHP. El siguiente script mostrará todas las configuraciones de PHP:
Ejemplo #1 Llamada a la función phpinfo()
<?php
phpinfo();
?>
O bien, en línea de comandos:
drive:\path\to\php\executable\php.exe -i
La manera más común de cargar una extensión PHP es incluirla en el fichero de configuración php.ini. Se debe tener en cuenta que muchas extensiones ya están presentes en el fichero php.ini y que simplemente se debe eliminar el punto y coma para activarlas.
A partir de PHP 7.2.0, el nombre de la extensión puede ser utilizado en lugar del nombre del fichero de la extensión. Como es independiente del sistema operativo y más fácil, especialmente para los nuevos usuarios, se convierte en la manera recomendada de especificar las extensiones a cargar. Los nombres de los ficheros siguen siendo soportados para la compatibilidad con las versiones anteriores.
;extension=php_extname.dll
extension=php_extname.dll
; A partir de PHP 7.2, favorizar: extension=extname zend_extension=another_extension
Sin embargo, algunos servidores web son confusos, ya que no utilizan el fichero php.ini almacenado con el ejecutable PHP. Para saber más sobre el verdadero php.ini utilizado, es posible buscar su ubicación utilizando phpinfo():
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\8.2\php.ini
Después de activar una extensión, guarde el fichero php.ini, y reinicie el servidor web, luego verifique nuevamente el fichero phpinfo(). La nueva extensión debería tener su sección allí.
Si la extensión no aparece en phpinfo(), es conveniente verificar los registros para saber de dónde viene el problema.
Si PHP se utiliza en línea de comandos (CLI), el error de carga de la extensión debería ser legible directamente en la pantalla.
Si PHP se utiliza en un servidor web, la posición y el formato de los registros varían considerablemente de un servidor a otro. Lea la documentación del servidor web para saber dónde se encuentran: PHP no tiene control sobre esta ubicación.
Los problemas más comunes son la ubicación del fichero DLL y las DLLs de las que depende, el valor de la directiva "extension_dir" en el php.ini y las inconsistencias de compilación.
Si el problema es una inconsistencia de compilación, la DLL descargada probablemente no es la correcta. Intente descargar una nueva, con las configuraciones correctas del servidor. phpinfo() será muy útil.