Se puede encontrar información para la instalación de esta extensión PECL en el capítulo del manual titulado Instalación de extensiones PECL. Se puede encontrar información adicional, tal como nuevos lanzamientos, descargas, ficheros fuente, información de mantenimiento, y un CHANGELOG, aquí: » https://pecl.php.net/package/mongodb
Los usuarios de Linux, Unix y macOS pueden ejecutar el siguiente comando para instalar la extensión:
$ sudo pecl install mongodb
En sistemas con múltiples versiones de PHP instaladas (por ejemplo, macOS por omisión, Homebrew, » XAMPP), cada versión de PHP tendrá su propio comando pecl y fichero php.ini. Además, cada entorno PHP (por ejemplo CLI, web) puede utilizar ficheros php.ini separados.
Desde la versión 1.17.0 de la extensión, PECL solicitará diversas opciones de
configuraciones
. Para instalar la extensión con las opciones por omisión
en un script no interactivo, una entrada vacía puede ser enviada a
pecl install
utilizando el comando yes
:
$ yes '' | sudo pecl install mongodb
Una lista completa de las opciones configure
soportadas puede ser
encontrada en el fichero package.xml
incluido en el paquete PECL.
Para instalar la extensión con opciones de configuraciones
específicas
en un script no interactivo, la opción
--configureoptions
para
pecl install
puede ser utilizada :
$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb
Por omisión la instalación de la extensión via PECL utilizará las versiones incluidas de » libbson, » libmongoc, y » libmongocrypt y tratará automáticamente de configurarlas.
Nota: Si el proceso de construcción falla al encontrar una biblioteca SSL, verifique que los paquetes de desarrollo (por ejemplo
libssl-dev
) y » pkg-config están ambos instalados. Si esto no resuelve el problema, considere utilizar el proceso de instalación manual.
Para finalizar, añada la siguiente línea al fichero php.ini para cada entorno que necesitará utilizar la extensión:
extension=mongodb.so
» Homebrew 1.5.0 ha deprecado el » tap Homebrew/php y ha eliminado las fórmulas para las extensiones PHP individuales. En el futuro, los usuarios de macOS están invitados a instalar la fórmula » php y a seguir las instrucciones de instalación estándar de PECL utilizando el comando pecl proporcionado por la instalación PHP Homebrew.
De lo contrario, el » tap shivammathur/extensions proporciona fórmulas para las extensiones PHP individuales. Por ejemplo, para instalar la extensión para PHP 8.4, ejecute:
$ brew install shivammathur/extensions/mongodb@8.4
Nota: Instalar las dependencias requeridas
Para garantizar que el soporte SSL puede ser configurado correctamente, asegúrese de que las fórmulas
openssl
ypkgconf
están instaladas. Si alguno de estos paquetes falta, la extensión será compilada con Secure Transport, lo que puede causar problemas de compatibilidad.
Los binarios precompilados están adjuntos a las » versiones Github del proyecto. Los archivos son publicados para diversas combinaciones de versión PHP, seguridad de hilos (TS o NTS) y arquitectura (x86 o x64). Determine el archivo correcto para el entorno PHP y extraiga el fichero php_mongodb.dll en el directorio de extensión ("ext" por omisión).
Añada la siguiente línea al fichero php.ini para cada entorno que necesitará utilizar la extensión:
extension=php_mongodb.dll
La falla en la selección del binario correcto resultará en un error al intentar cargar la extensión DLL en la ejecución:
PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb'
Asegúrese de que la DLL descargada coincida con las siguientes propiedades de ejecución PHP:
PHP_VERSION
)PHP_ZTS
)PHP_INT_SIZE
)Además de las constantes mencionadas anteriormente, estas propiedades también pueden ser deducidas de phpinfo(). Si un sistema tiene múltiples ejecuciones PHP instaladas, verifique que la salida de phpinfo() es para el entorno correcto.
Nota: Dependencias adicionales DLL para los usuarios de Windows
Para que esta extensión funcione, hay unos ficheros DLL que deben estar disponibles en el PATH del sistema de Windows. Para obtener más información sobre esto, vea la FAQ titulada "Como añadir mi directorio de PHP al PATH de Windows". Aunque copiar los ficheros DLL desde el directorio PHP al directorio del sistema de Windows también funciona (porque el directorio del sistema está de manera predeterminada en el PATH del sistema), no se recomienda. Esta extensión requiere que los siguientes ficheros esten en el PATH: libsasl.dll
Para los desarrolladores y usuarios interesados en las últimas correcciones de errores, la extensión puede ser compilada a partir del último código fuente en » Github. Ejecute los siguientes comandos para clonar y construir el proyecto:
$ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule update --init $ phpize $ ./configure $ make all $ sudo make install
En sistemas con múltiples versiones de PHP instaladas (por ejemplo, macOS por omisión, Homebrew, » XAMPP), cada versión de PHP tendrá su propio comando phpize y fichero php.ini. Además, cada entorno PHP (por ejemplo CLI, web) puede utilizar ficheros php.ini separados.
Por omisión, la extensión utilizará las versiones incluidas de
» libbson,
» libmongoc, y
» libmongocrypt y
tratará de configurarlas automáticamente. Si estas bibliotecas ya están
instaladas como bibliotecas del sistema, la extensión puede utilizarlas especificando
--with-mongodb-system-libs=yes
como opción a
configure
.
Para una lista completa de las opciones configure
, ejecute
configure --help.
Cuando se utilizan las versiones agrupadas de libmongoc y libmongocrypt,
la extensión también tratará de seleccionar una biblioteca SSL según la opción de
configuración
--with-mongodb-ssl
.
A partir de la versión 1.17.0 de la extensión, OpenSSL es siempre preferido por omisión.
Anteriormente, Secure Transport era el valor por omisión en macOS y OpenSSL era el valor por omisión
en todas las otras plataformas.
Nota:
Si el proceso de construcción falla al encontrar una biblioteca SSL, verifique que los paquetes de desarrollo (por ejemplo
libssl-dev
) y » pkg-config están ambos instalados.Cuando se utiliza Homebrew en macOS, es común que un sistema tenga múltiples versiones de OpenSSL instaladas. Para garantizar que la versión de OpenSSL deseada es seleccionada, la variable de entorno
PKG_CONFIG_PATH
puede ser utilizada para controlar la ruta de búsqueda depkg-config
.
El último paso de construcción, make install, indicará dónde mongodb.so ha sido instalado, similar a:
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20220829/
Asegúrese de que la opción extension_dir en php.ini apunte al directorio donde mongodb.so ha sido instalado. La opción puede ser consultada ejecutando:
$ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 => /usr/lib/php/extensions/debug-non-zts-20220829
Si los directorios difieren, modifique extension_dir en php.ini o mueva manualmente mongodb.so al directorio correcto.
Para finalizar, añada la siguiente línea al fichero php.ini para cada entorno que necesitará utilizar la extensión:
extension=mongodb.so