首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阿尔卑斯3.8码头映像:启用libmongoc上的SSL

问阿尔卑斯3.8码头映像:启用libmongoc上的SSL
EN

Stack Overflow用户
提问于 2020-11-18 07:08:28
回答 1查看 1.1K关注 0票数 1

我目前正在为我的项目建立一个基本形象。该项目使用mongodb。我已经成功地创建了映像,但是当我试图调用与libmongoc上的SSL相关的端点时,会出现一个错误:

代码语言:javascript
复制
The SCRAM_SHA_256 authentication mechanism requires libmongoc built with ENABLE_SSL

下面是关于我的码头形象的一些值得注意的东西:

高寒高寒7.2

  • nginx

  • lumen-framework 7.2

  • nginx

  • lumen-framework 5.6.*

以下是目前存在问题的实施情况,欢迎您的建议:

代码语言:javascript
复制
FROM alpine:3.8

RUN apk update && apk upgrade
RUN apk --no-cache add composer curl gcc git make musl-dev nginx \
    openssl openssl-dev php7 php7-ctype php7-curl php7-dev \
    php7-dom php7-fileinfo php7-fpm php7-gd php7-iconv \
    php7-imagick php7-intl php7-json php7-mbstring php7-mysqli \
    php7-opcache php7-openssl php7-pdo php7-pdo_mysql php7-pear \
    php7-redis php7-simplexml php7-tokenizer php7-xdebug \
    php7-xmlreader php7-xmlwriter php7-zip php7-zlib supervisor tzdata
RUN pecl install mongodb \
    && pecl config-set php_ini /etc/php7/php.ini \
    && echo "extension=mongodb.so" > /etc/php7/conf.d/20_mongodb.ini

除了上面的Dockerfile之外,我还尝试手动构建基于this article 的mongo驱动程序,但是它没有帮助。这两个选项仍然显示,当我检查php -i | grep mongo时,SSL是禁用的。如果我需要包括其他信息,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2021-12-31 19:49:30

最初的职位是一年多以前的。但我也被这个错误压倒了:The SCRAM_SHA_256 authentication mechanism requires libmongoc built with ENABLE_SSL。

下面的解决方案假设您有一个用于mongodb的坞-组合配置。

我的解决方案是首先停止并移除正在实现mongoDB的容器.调用容器workspace

堆叠:

最新alpine

  • nginx

  • php7.3,

  • Laravel 8.x

创建mongodb扩展的Dockerfile工作

代码语言:javascript
复制
RUN apk add redis gnupg openrc openssl libbsd==0.9.1-r1 && rm -rf /var/cache/apk/*

RUN apk update && apk upgrade &&\
    apk add --no-cache php7-pear php7-dev php7-openssl gcc musl-dev make &&\
    apk add curl-dev openssl openssl-dev &&\
    pecl channel-update pecl.php.net &&\
    pecl install mongodb &&\
    pecl config-set php_ini /etc/php7/php.ini

RUN echo "extension=mongodb.so" >> /etc/php7/php.ini &&\
    php --ri mongodb

构建容器

代码语言:javascript
复制
docker-compose stop workspace && docker-compose rm -f workspace && docker-compose build --no-cache workspace

向容器中猛击:docker-compose exec workspace bash

验证MongoDB实际上是作为php模块存在的:

代码语言:javascript
复制
bash-5.0# php -m | grep mongodb
mongodb

验证libmongoc上启用的SSL

代码语言:javascript
复制
enter command: php --ri mongodb

答复如下:

代码语言:javascript
复制
bash-5.0# php --ri mongodb

mongodb <<<<<< Response means mongo is enabled.  See more below.

MongoDB support => enabled
MongoDB extension version => 1.12.0
MongoDB extension stability => stable
libbson bundled version => 1.20.0
libmongoc bundled version => 1.20.0
libmongoc SSL => enabled <<<< SSL Enabled fixes the problem.
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => disabled
libmongoc SASL => disabled
libmongoc ICU => disabled
libmongoc compression => enabled
libmongoc compression snappy => disabled
libmongoc compression zlib => enabled
libmongoc compression zstd => disabled
libmongocrypt bundled version => 1.3.0
libmongocrypt crypto => enabled
libmongocrypt crypto library => libcrypto

Directive => Local Value => Master Value
mongodb.debug => no value => no value
mongodb.mock_service_id => Off => Off
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64888534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档