
Docker 安装MongoDB链接出错:The SCRAM_SHA_1 authentication mechanism requires libmongoc built with ENABLE_SSL
当我使用 Docker 构建了PHP开发环境之后,我遇到了新的MongoDB链接问题
The SCRAM_SHA_1 authentication mechanism requires libmongoc built with ENABLE_SSL
顾名思义,提示信息告诉我们,SCRAM_SHA_1 这种加密认证方式依赖于系统的libmongoc库在编译时启用了SSL选项的。看起来比较复杂,我们可以通过在Dockerfile中增加下面几行代码,来重新安装mongodb扩展和库
RUN apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev
RUN pecl uninstall mongodb
RUN pecl install mongodb
经过修改后的Dockerfile如下
# Dockerfile
FROM php:7.4.1-fpm
# Install git
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git
RUN apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev
RUN pecl uninstall mongodb
RUN pecl install mongodb
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-enable mongodb
#RUN echo "extension=mongodb.so" >> /usr/local/etc/php/php.ini
EXPOSE 80 443 8001 8000
现在我们只需要重新运行Docker命令来构建一个新的版本即可
docker run TPHP:v2 .