“SCRAM-SHA-1”身份验证机制需要使用 --enable-ssl 构建的 libmongoc

151*_*291 6 mongodb amazon-web-services laravel-5

使用 Laravel 5.4 和 Mongodb 3.6 连接到数据库时收到错误消息

The "SCRAM-SHA-1" authentication mechanism requires libmongoc built with --enable-ssl

它在具有相同版本的 ubuntu 16.04 中运行良好,但在 AWS Linux 中则不然。

安装 LAMP [ php70, apach24 ] :

已安装 Mongodb [ 3.6 ] :

为 php7 安装了 php-mongodb 驱动程序:

sudo yum -y install php7-pear php70-devel gcc  // completed
sudo pecl7 install mongodb                     // completed 
sudo yum install openssl-devel                 // completed
Run Code Online (Sandbox Code Playgroud)

php-mongodb 驱动安装并更新到 php.ini,mongodb 也显示在 phpinfo() 中。

我们发现 phpinfo 禁用了 libmongoc ssl,这是问题吗?

在此处输入图片说明

我们如何启用它?

Jan*_*sen 12

在 Ubuntu 18.04 LTS、PHP 7.2.7 上

我必须安装一些额外的软件包:

sudo apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev
Run Code Online (Sandbox Code Playgroud)

然后重新安装mongodb:

sudo pecl uninstall mongodb
sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)

然后检查 SSL 是否已启用:

php -i | grep mongo
Run Code Online (Sandbox Code Playgroud)

/etc/php/7.2/cli/conf.d/20-mongodb.ini,mongodb
libmongoc 捆绑版本 => 1.11.0 libmongoc SSL => 启用 libmongoc SSL 库 => OpenSSL libmongoc crypto => 启用 libmongoc 加密库 => libcrypto

重新启动 PHP:

sudo service php7.2-fpm restart
Run Code Online (Sandbox Code Playgroud)


Art*_*ard 6

对于那些在Alpine docker上遇到错误的人。您必须在Dockerfile中添加:

RUN apk add curl-dev openssl-dev

而不是 sudo apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev

RUN pecl config-set php_ini /etc/php.ini也用过


151*_*291 4

错误,因为已禁用libmongoc SSL并且libmongoc Crypto来自 php-mongodb 驱动程序并通过以下命令启用。

sudo pecl7 config-set php_ini /etc/php.ini
Run Code Online (Sandbox Code Playgroud)

安装完mongodb驱动后sudo pecl7 install mongodb,我们应该进行上述设置。

现在运行良好。