php专区

 首页 > php专区 > PHP基础 > 环境 > PHP添加MongoDB扩展实例教程

PHP添加MongoDB扩展实例教程

分享到:
【字体:
导读:
          由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证,这里就结合phpize提供的动态扩展功能进行...

由于要使用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 
  3. 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模块配置之前,该方法虽然也可以,不过不推荐,因为我上面的方法自动会查看各模块之间的依赖关系,再决定加载的先后顺序,如果遇到其他模块存在该情况时,同样可以自动解决掉.

 
分享到:
php中Composer 安装与使用教程
Composer是PHP中用来管理依赖(dependency)关系的工具,你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件,下面我们一起来看composer安装方法. 下午在安装 Laravel 框架过程中,遇到了不少问题,因为 Laravel 的安装依赖于 composer,这里就先介绍一下 composer 的安装方法. ...
php开启PDO MySQL扩展模块的方法详解
PDO MySQL模块在安装php环境时默认是没有安装了,如果我们要使用PDO MySQL需要在php.ini配置文件中开启PDO MySQL模块功能即可,具体我来给大家介绍一下配置方法. 在windows服务器中,找到php安装目录的php.ini文件然后我们搜索到: ;extension=php_pdo.dll 这一行,看这行前面是否有分号,如果有的话,把它去掉,然后找找有...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……