CentOS 安装PHP 7的mongodb扩展遇到的坑 - Go语言中文社区

CentOS 安装PHP 7的mongodb扩展遇到的坑


本人在docker上部署PHP环境时,安装MongoDB扩展遇到了一个坑:
PHP Fatal error: Uncaught MongoDBDriverExceptionAuthenticationException: The “SCRAM-SHA-1” authentication mechanism requires libmongoc built with –enable-ssl
此错误应该仅会出现在设置了需要登录验证的MongoDB上。

一开始时没多想,在PECL上找到MongoDB的扩展后,直接编译:

phpize
./configure
make
make install

简单写了测试代码测试了下,就出现以下错误:
PHP Fatal error: Uncaught MongoDBDriverExceptionAuthenticationException: The “SCRAM-SHA-1” authentication mechanism requires libmongoc built with –enable-ssl in /var/www/html/mongo.php:8nStack trace:n#0 /var/www/html/mongo.php(8): MongoDBDriverManager->executeBulkWrite(‘test.tb’, Object(MongoDBDriverBulkWrite))n#1 {main}n thrown in /var/www/html/mongo.php on line 8

起先怀疑是./configure时需要加上一些选项参数,通过./configure --help里找相关类似于上面错误提示里所说的--enable-ssl选项,目标锁定:

然而即便加上此选项后:./configure --with-mongodb-ssl,再重新编译,也依旧无用。

百度一圈找不到解决方案后,就Google了一下,果然发现了问题的关键:
phpinfo
问题就出在上图phpinfo的mongodb扩展信息上的红框里的disabled上。

其实根本原因就是我使用的docker镜像太干净了,连openssl都没有,于是先装上openssl:

yum install -y openssl openssl-devel

重新编译一下mongodb扩展(./configure不需加上面所说的选项参数,因为其实默认值就是--with-mongodb-ssl=auto了),再去phpinfo里看:
phpinfo
果然有所不同,再运行测试代码,测试成功!

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/BingZhongDeHuoYan/article/details/79455808
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-04-12 07:35:40
  • 阅读 ( 1413 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢