PHP添加MongoDB扩展
由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证 。这里就结合phpize提供的动态扩展功能进行mongodb的扩展。
一、php mongo模块的编译
先从 http://pecl.php.net/package/mongo 下载目前的stable稳定版 ,目前的最新稳定版本是1.5.2 , 安装步骤如下:
1# wget http://pecl.php.net/get/mongo-1.5.2.tgz
2# tar zxvf mongo-1.5.2.tgz
3# cd mongo-1.5.2
4# /usr/bin/phpize
5# ./configure –with-php-config=/usr/bin/php-config
6# make && make install
注:没有 phpize 工具时 ,可以通过yum -y install php-devel 安装后就会有该工具 。
二、php的扩展配置
完成后在/etc/php.ini中添加内容:extension=mongo.so
,完成后,再使用php -m查看,发现报错:
1# php -m|grep mongo
2/usr/lib64/php/modules/mongo.so: undefined symbol: php_json_encode in Unknown on line 1
经网上查询发现是需要对 json.so 模块依赖,经查看/usr/lib64/php/modules/目录下已经存在json.so模块 。即然存在报错的原因是因为json.so在mongo.so之后才加载的 。在/etc/php.ini中查找了下json的配置,发现不存在。在/etc/php.d目录找到了json.ini文件 。
1# cat /etc/php.d/json.ini
2; Enable json extension module
3extension=json.so
知道了原因 ,也依葫芦画瓢 ,将刚刚在/etc/php.ini中的mongo配置删除 ,在/etc/php.d/目录下新增mongo.ini ,内容为extension=mongo.so ,配置完成后再使用php -m|grep mongo检测发现正常 。
注:这里网上也有一些方法是通过将/etc/php.d/json.ini文件删除,在/etc/php.ini文件中将json模块的配置加到mongo模块配置之前 。该方法虽然也可以,不过不推荐,因为我上面的方法自动会查看各模块之间的依赖关系 ,再决定加载的先后顺序 。如果遇到其他模块存在该情况时,同样可以自动解决掉。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/php-mongo-so/3400.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.