设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP添加MongoDB扩展实例教程

发布时间:2022-06-21 14:23 所属栏目:121 来源:互联网
导读:由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证,这里就结合phpize提供的动态扩展功能进行mongodb的扩展. 一、php mongo模块的编译 先从 http://pecl
  由于要使用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,安装步骤如下:
 
  # wget http://pecl.php.net/get/mongo-1.5.2.tgz
  # tar zxvf mongo-1.5.2.tgz
  # cd mongo-1.5.2
  # /usr/bin/phpize
  # ./configure –with-php-config=/usr/bin/php-config
  # make && make install
  注:没有 phpize 工具时,可以通过yum -y install php-devel 安装后就会有该工具.
 
  二、php的扩展配置
 
  完成后在/etc/php.ini中添加如下内容:
 
  extension=mongo.so
 
  完成后,再使用php -m查看,发现报错:
 
  # php -m|grep mongo
  /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文件,代码如下:
 
  # cat /etc/php.d/json.ini
  ; Enable json extension module
  extension=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模块配置之前,该方法虽然也可以,不过不推荐,因为我上面的方法自动会查看各模块之间的依赖关系,再决定加载的先后顺序,如果遇到其他模块存在该情况时,同样可以自动解决掉.

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读