Instalación

Instalar la extensión de MongoDB PHP con PECL

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

Instalar la extensión de MongoDB PHP en macOS con Homebrew

» 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
Es de notar que solo la última versión de la extensión está disponible en brew.

Nota: Instalar las dependencias requeridas

Para garantizar que el soporte SSL puede ser configurado correctamente, asegúrese de que las fórmulas openssl y pkgconf están instaladas. Si alguno de estos paquetes falta, la extensión será compilada con Secure Transport, lo que puede causar problemas de compatibilidad.

Instalar la extensión de MongoDB PHP en Windows

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:

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

Instalación manual de la extensión de MongoDB PHP

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 de pkg-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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top