Instalación de una extensión PHP en Windows
Hay dos formas de cargar una extensión PHP en Windows: compilarla en
PHP o cargar la DLL.
Cargar una extensión precompilada es la forma más fácil y preferida.
Para cargar una extensión, debe estar disponible como un
fichero .dll
en el sistema.
Todas las extensiones son compiladas automáticamente y periódicamente por el Grupo PHP
(consulte la siguiente sección para la descarga).
Para compilar una extensión en PHP, consulte la
documentación de compilación desde el código fuente.
Para compilar una extensión independiente (también conocida como un fichero DLL), consulte la
documentación de compilación desde el código fuente.
Si el fichero DLL no está disponible ni con la distribución de PHP ni en PECL,
puede ser necesario compilarlo antes de que la extensión pueda usarse.
¿Dónde encontrar una extensión?
Las extensiones PHP suelen llamarse php_*.dll (donde el
asterisco representa el nombre de la extensión), y se encuentran en la
carpeta PHP\ext.
PHP incluye las extensiones más útiles para la mayoría de los desarrolladores.
Se llaman extensiones incluidas.
Sin embargo, si las extensiones incluidas no proporcionan la funcionalidad necesaria,
aún puede encontrarse una extensión que lo haga en » PECL.
La Biblioteca de Extensiones de la Comunidad PHP (PECL) es un repositorio para
Extensiones PHP, que proporciona un directorio de todas las extensiones conocidas y ofrece
instalaciones para descargar y desarrollar extensiones PHP.
Si una extensión ha sido desarrollada para usos particulares, puede estar alojada en
PECL para que otros con las mismas necesidades puedan beneficiarse de ella.
Un buen efecto secundario es que es una buena oportunidad para recibir comentarios,
(con suerte) agradecimientos, informes de errores e incluso correcciones/parches.
Antes de enviar una extensión para alojarla en PECL, lea
» PECL submit.
¿Qué extensión descargar?
Muchas veces, habrá varias versiones de cada DLL disponibles:
-
Diferentes números de versión (al menos los dos primeros números deben coincidir)
-
Diferentes configuraciones de seguridad de hilos
-
Diferentes arquitecturas de procesador (x86, x64, ...)
-
Diferentes configuraciones de depuración
-
etc.
Tenga en cuenta que la configuración de la extensión debe coincidir con todas las configuraciones de
el ejecutable de PHP que se está utilizando.
El siguiente script PHP informará todo sobre la configuración de PHP:
O desde la línea de comandos, ejecute:
drive:\path\to\php\executable\php.exe -i
Carga de una extensión
La forma más común de cargar una extensión PHP es incluirla en el
fichero de configuración php.ini.
Tenga en cuenta que muchas extensiones ya están presentes en el php.ini y
que solo es necesario eliminar el punto y coma para activarlas.
Tenga en cuenta que, a partir de PHP 7.2.0, puede usarse el nombre de la extensión
en lugar del nombre del fichero de la extensión.
Al ser independiente del sistema operativo y más fácil, especialmente para los recién llegados, se convierte
en la forma recomendada de especificar las extensiones a cargar.
Los nombres de fichero siguen siendo compatibles con versiones anteriores.
;extension=php_extname.dll
extension=php_extname.dll
; A partir de PHP 7.2.0, se prefiere:
extension=extname
zend_extension=another_extension
Sin embargo, algunos servidores web son confusos porque no usan
el php.ini ubicado junto al ejecutable de PHP.
Para averiguar dónde reside el php.ini real, busque su ruta
en 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 php.ini, reinicie el servidor web y
verifique phpinfo() nuevamente.
La nueva extensión debería tener ahora su propia sección.
Resolución de problemas
Si la extensión no aparece en phpinfo(),
deben revisarse los registros para saber de dónde proviene el problema.
Si PHP se está utilizando desde la línea de comandos (CLI), el error de carga de la extensión
puede leerse directamente en la pantalla.
Si PHP se está utilizando con un servidor web, la ubicación y el formato de los registros
varían según el software.
Lea la documentación del servidor web para localizar los registros, ya que no tiene
nada que ver con PHP en sí.
Los problemas comunes son la ubicación de la DLL y las DLLs de las que depende, el
valor de la configuración "extension_dir"
dentro de php.ini y las incompatibilidades en la configuración de compilación.
Si el problema radica en una incompatibilidad en la configuración de compilación, probablemente la DLL
descargada no es la correcta.
Intente descargar la extensión nuevamente con la configuración adecuada.
Nuevamente, phpinfo() puede ser de gran ayuda.