«SCRAM-SHA-1» authentication mechanism requires libmongoc built with –enable-ssl

Vamos a ponernos en antecedentes, estaba con una contenedor de Docker, para ser mas claros el de WordPress, en el cual quería habilitar unos módulos de PHP que necesitaba, uno de ellos el de mongodb. La instalación de la extensión de MongoDB para PHP se realiza, como la mayoría de los modulos con pecl. El modulo que estoy instalando es la versión 1.4.1.

# pecl install mongodb

Bien una vez realizado esto, el código que tenia ejecutándose en esta maquina me ha devuelto este bonito error, buscando documentación he encontrado que el motivo de este error es que para usar el mecanismo de autentificación SCARM-SHA-1 debe estar habilitado en el modulo de php de mongodb el libmongoc SSL, el cual no se habilita cuando se instala el modulo. Solución,  pues lo mas fácil es:

      1. Desinstalamos el modulo si lo tenemos
        # pecl uninstall mongodb
      2. Debemos comprobar si tenemos instalado el libssl-dev, y si no instalarlo, por ejemplo en sistemas Debian (Ubuntu, Mint)
        # sudo apt-get install libssl-dev
      3. Una vez instalado, podemos o bien descargar el mongodb-1.4.1 u otra versión desde la web de pecl o bien utilizar el que hemos descargado anteriormente que seguramente esta en los temporales. Pecl MongoDB
      4. Ahora viene la parte mas «complicada», descomprimimos el fichero, y nos ubicamos dentro de la carpeta que se ha generado por medio del terminal:
        # descomprimidos el fichero descargado
        $ tar -xvf mongodb-1.4.1.tgz
        # Accedemos a la carpeta
        $ cd mongodb-1.4.1
        # Ejecutamos dentro de la carpeta el phpize
        $ phpize
        # Una vez ejecutado configuramos la extensión asi - Comprobar la salida de la
        # instalación con pecl para ver donde esta la ruta de --with-php-config
        $ ./configure --with-php-config=/usr/local/bin/php-config --with-mongodb-ssl=openssl
        # Finalizada la configuración correctamente generamos la extensión
        $ make
        # Ahora copiamos las extension generada al directorio donde estan nuestras
        # extensiones. Se puede comprobar con el phpinfo() o con php -i en linea
        $ cp modules/mongodb.so /directorio/php/modules/
        
      5. Ya solo queda cargar la extensión, si no lo habíamos hecho antes agregando la linea «extension=mongodb.so» a nuestro php.ini o creando el fichero en el directorio de carga de extensiones de PHP.