之前遇到MongoDB旧版的php扩展php_mongo对MongoDB3.0以上的新特性不支持的情况,比如ReadOnly-Views(只读视图)、replica set(副本集)集群部署等问题,需要升级到新版的php_mongodb才能解决,但重写代码却是让人难以接受的。根据官方的介绍,给出的解决方案,我部署了一下,确实好用。
1、首先服务器上安装新版驱动mongodb1.2的php扩展,具体安装过程本文不做探讨,你可以编译安装,也可以pecl安装,需要注意的是安装完成后一定要在php.ini的配置里加上extension=mongodb.so;
2、如果没有安装composer,请先安装composer,具体过程略。如果安装了直接跳到下一步;
3、用命令行进入项目根目录
//将数据源设置成中国区镜像,可以忽略
composer config -g repo.packagist composer https://packagist.phpcomposer.com
//引入新版驱动代码
composer require mongodb/mongodb
//引入新旧驱动转换组件
composer require alcaeus/mongo-php-adapter
4、重启php,搞定;(如果你的项目没有自动引入composer组件,请自行手动引入)
5、一切运行正常后,可以将旧版驱动卸载了;