alpine下php7安装mongodb扩展以及链接mongodb遇到的问题

php7安装mongodb扩展可以自行搜索,文档很全,链接mongodb时需要开启openssl,所以alpine必须安装openssl扩展:

apk add openssl-dev

安装php扩展openssl:

进入php源代码路径

?
1
cd /php-5.6.19/ext/openssl

使用phpize编译

?
1
2
3
cp config0.m4 config.m4
 
phpize

此时会生成configure文件,这样就可以使用make命令安装

特别说明:需要设置php安装路径的环境变量.

执行make安装

?
1
./configure --with-php-config=/usr/local/cp-php-5.6.19/bin/php-config --with-openssl

特别说明:需要先安装openssl

php.ini添加扩展配置openssl的扩展

?
1
extension=openssl.so

验证是否增加成功

?
1
php -m

链接mongodb时出现的错误:

错误一:权限不够Error:couldn't add user:command createUser requires authentication、

解决方案:先使用超级管理员登录

  

再进行其他数据库用户创建的创建

 

单写了测试代码测试了下,就出现以下错误: 
PHP Fatal error: Uncaught MongoDB\Driver\Exception\AuthenticationException: The “SCRAM-SHA-1” authentication mechanism requires libmongoc built with –enable-ssl in /var/www/html/mongo.php:8\nStack trace:\n#0 /var/www/html/mongo.php(8): MongoDB\Driver\Manager->executeBulkWrite(‘test.tb’, Object(MongoDB\Driver\BulkWrite))\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
  • 1

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

转载于:https://www.cnblogs.com/i6010/articles/11466296.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值