以下安装mongo-php-driver 也许会遇到

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mongodb.so' - /usr/lib64/php/modules/mongodb.so: undefined symbol: bson_decimal128_from_string in Unknown on line 0

问题。

[root@www mongo-php-driver]# git clone https://github.com/mongodb/mongo-php-driver

Initialized empty Git repository in /home/.../mongo-php-driver/.git/

remote: Counting objects: 9821, done.

remote: Compressing objects: 100% (10/10), done.

remote: Total 9821 (delta 2), reused 0 (delta 0), pack-reused 9811

Receiving objects: 100% (9821/9821), 3.25 MiB | 642 KiB/s, done.

Resolving deltas: 100% (6883/6883), done.

[root@www mongo-php-driver]# cd mongo-php-driver

[root@www mongo-php-driver]# phpize

遇到如下问题:

Configuring for:

PHP Api Version:         20131106

Zend Module Api No:      20131226

Zend Extension Api No:   220131226

/usr/bin/m4:config.m4:482: cannot open `src/libmongoc/build/autotools/WeakSymbols.m4': No such file or directory

/usr/bin/m4:config.m4:483: cannot open `src/libmongoc/build/autotools/m4/ax_pthread.m4': No such file or directory

/usr/bin/m4:config.m4:517: cannot open `src/libbson/build/autotools/CheckAtomics.m4': No such file or directory

/usr/bin/m4:config.m4:518: cannot open `src/libbson/build/autotools/FindDependencies.m4': No such file or directory

/usr/bin/m4:config.m4:519: cannot open `src/libbson/build/autotools/m4/ac_compile_check_sizeof.m4': No such file or directory

/usr/bin/m4:config.m4:520: cannot open `src/libbson/build/autotools/m4/ac_create_stdint_h.m4': No such file or directory

/usr/bin/m4:config.m4:565: cannot open `src/libmongoc/build/autotools/Versions.m4': No such file or directory

/usr/bin/m4:config.m4:579: cannot open `src/libbson/build/autotools/Versions.m4': No such file or directory

autom4te: /usr/bin/m4 failed with exit status: 1

解决问题使用如下:

[root@www mongo-php-driver]# git submodule update --init

参数 init前面是 ‘--’,两个半角减号,坑死自己了

Submodule 'src/libbson' (https://github.com/mongodb/libbson.git) registered for path 'src/libbson'

Submodule 'src/libmongoc' (https://github.com/mongodb/mongo-c-driver.git) registered for path 'src/libmongoc'

Initialized empty Git repository in /home/.../mongo-php-driver/src/libbson/.git/

remote: Counting objects: 9019, done.

remote: Compressing objects: 100% (4/4), done.

remote: Total 9019 (delta 0), reused 0 (delta 0), pack-reused 9015

Receiving objects: 100% (9019/9019), 6.32 MiB | 60 KiB/s, done.

Resolving deltas: 100% (6258/6258), done.

Submodule path 'src/libbson': checked out '82b3cb4d89fdb590cdda4d2bb591d0062ccc765e'

Initialized empty Git repository in /home/.../mongo-php-driver/src/libmongoc/.git/

remote: Counting objects: 26396, done.

remote: Compressing objects: 100% (147/147), done.

remote: Total 26396 (delta 79), reused 0 (delta 0), pack-reused 26249

Receiving objects: 100% (26396/26396), 14.34 MiB | 2.23 MiB/s, done.

Resolving deltas: 100% (19745/19745), done.

Submodule path 'src/libmongoc': checked out ‘62e680aa26754ef8dbdb2709aac4d2488507872a'

[root@www mongo-php-driver]# phpize

Configuring for:

PHP Api Version:         20131106

Zend Module Api No:      20131226

Zend Extension Api No:   220131226

[root@www mongo-php-driver]# ./configure

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for a sed that does not truncate output... /bin/sed

..........

checking whether to build shared libraries... yes

checking whether to build static libraries... no

configure: creating ./config.status

mongodb was configured with the following options:

Build configuration:

CFLAGS                                           : -g -O2

Extra CFLAGS                                     :  -pthread

Developers flags (slow)                          :

Code Coverage flags (extra slow)                 :

System mongoc                                    : no

System libbson                                   : no

LDFLAGS                                          :

EXTRA_LDFLAGS                                    :

MONGODB_SHARED_LIBADD                            :  -lssl -lcrypto -lrt

Please submit bugreports at:

https://jira.mongodb.org/browse/PHPC

config.status: creating ./src/libmongoc/src/mongoc/mongoc-config.h

config.status: creating ./src/libmongoc/src/mongoc/mongoc-version.h

config.status: creating ./src/libbson/src/bson/bson-config.h

config.status: creating ./src/libbson/src/bson/bson-version.h

config.status: creating config.h

config.status: executing libtool commands

[root@www mongo-php-driver]# make

……

/bin/sh /home/markboo/mongo-php-driver/libtool --mode=install cp ./mongodb.la /home/.../mongo-php-driver/modules

libtool: install: cp ./.libs/mongodb.so /home/.../mongo-php-driver/modules/mongodb.so

libtool: install: cp ./.libs/mongodb.lai /home/.../mongo-php-driver/modules/mongodb.la

libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /home/.../mongo-php-driver/modules

----------------------------------------------------------------------

Libraries have been installed in:

/home/.../mongo-php-driver/modules

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the `LD_LIBRARY_PATH' environment variable

during execution

- add LIBDIR to the `LD_RUN_PATH' environment variable

during linking

- use the `-Wl,-rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

Build complete.

Don't forget to run 'make test’.

[root@www mongo-php-driver]# make install

Installing shared extensions:     /usr/lib64/php/modules/

[root@www mongo-php-driver]# echo "extension=mongodb.so" > /etc/php.d/mongo.ini

[root@www mongo-php-driver]# cat /etc/php.d/mongo.ini

extension=mongodb.so

apache error_log里出现:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mongodb.so' - /usr/lib64/php/modules/mongodb.so: undefined symbol: bson_decimal128_from_string in Unknown on line 0

这个c-driver的问题,mongo也还没暂时没有解决,链接如下:https://jira.mongodb.org/browse/CDRIVER-1173

描述如下:

Since bson_decimal128_from_string () requires a null terminated string, the BSON to JSON conversion for bson_decimal128_t allocates a new string+1 since the input isn't null terminated.

We should be able to avoid that extra malloc, either though stack allocation or passing the length to the bson_decimal128_from_string () function.

---------------------------------------------------------------------------------------

所以变更驱动,使用PECL驱动

# wget https://pecl.php.net/get/mongo-1.6.13.tgz

# tar zxvf mongo-1.6.13.tgz

# cd mongo-1.6.13

# phpize

# ./configure

# make

# make install

# echo "extension=mongo.so" > /etc/php.d/mongo.ini

# wget https://pecl.php.net/get/mongodb-1.1.6.tgz

# tar -xzf mongodb-1.1.6.tgz

# cd mongodb-1.1.6

# phpize

# ./configure

# make

# make install

# echo "extension=mongo.1.1.6.so" > /etc/php.d/mongodb.ini

# httpd -k restart

# php -i

mongo

MongoDB Support => enabled

Version => 1.6.13

Streams Support => enabled

SSL Support => enabled

Supported Authentication Mechanisms

MONGODB-CR => enabled

SCRAM-SHA-1 => enabled

MONGODB-X509 => enabled

GSSAPI (Kerberos) => disabled

PLAIN => disabled

Directive => Local Value => Master Value

mongo.allow_empty_keys => 0 => 0

mongo.chunk_size => 261120 => 261120

mongo.cmd => $ => $

mongo.default_host => localhost => localhost

mongo.default_port => 27017 => 27017

mongo.is_master_interval => 15 => 15

mongo.long_as_object => 0 => 0

mongo.native_long => 1 => 1

mongo.ping_interval => 5 => 5

mongodb

mongodb support => enabled

mongodb version => 1.1.6

mongodb stability => stable

libmongoc version => 1.3.5

libbson version => 1.3.5

Directive => Local Value => Master Value

mongodb.debug => no value => no value

后一种没有报错误,程序运行也没有问题!

来源:http://blog.csdn.net/markboo/article/details/51191586

安装 MongoDB PHP 驱动 在CentOS 6.x和遇到的问题相关推荐

  1. Linux上安装MongoDB

    MongoDB在Windows上的安装过程整体上来说并不难,网上的资料也比较多,这里我就不介绍了,我主要说下如何在Linux环境下安装MongoDB. 环境: CentOS 7 MongoDB 3.4 ...

  2. (翻译) MongoDB(10) 在 Red Hat 企业版或者 Centos Linux 上安装MongoDB社区版

    概述 使用这个教程在 Red Hat 企业版 Linux 或者 CentOS6/7 Linux 使用 .rpm 软件包安装 MongoDB 社区版. 虽然一些发行版包含自己的 MongoDB 软件包, ...

  3. Centos下安装MongoDB复制集

    2019独角兽企业重金招聘Python工程师标准>>> 在一台Centos下模拟安装MongoDB的复制集 准备三份配置文件: mongod.conf bind_ip=0.0.0.0 ...

  4. CentOS安装MongoDB

    CentOS下载MongoDB 1 # wget https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.0.1.tgz 解压安装MongoDB 将 ...

  5. CentOS 7 yum方式快速安装MongoDB

    一.安装环境及配置yum # more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # vi /etc/yum.repos.d/m ...

  6. 在CentOS上安装MongoDB

    CentOS系统有软件安装管理软件,安装起来非常方便,相信用CentOS系统的人们都非常中意这种安装软件的方法.MongoDB官网也提供了用YUM安装MongoDB数据库的软件包.现在我们用这种方法来 ...

  7. CentOS 7上安装 MongoDB数据库 4.0.0最新版

    MongoDB简介 MongoDB(来自于英文单词"Humongous",中文含义为"庞大")是可以应用于各种规模的企业.各个行业以及各类应用程序的开源数据库. ...

  8. centos mysql mongodb_Linux 平台安装 MongoDB | 菜鸟教程

    Linux平台安装MongoDB MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包. 安装前我们需要安装各个 Linux 平台依赖包. Red Hat/Cen ...

  9. Hadoop 之Mong DB 之CentOS 6 使用 yum 安装MongoDB及服务器端配置

    安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位Centos下的安装步骤如下: 1.准 ...

最新文章

  1. 如何获取元素在父级div里的位置_前端面试题--元素的BFC特性和实例
  2. 超赞!YOLOv5的妙用:学习手语,帮助听力障碍群体
  3. c 调用java的dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll
  4. 网页授权有时候获取不到openid 的坑
  5. java basic类似的地方_java – Shiro使用HTTP Basic Auth或匿名访问相同的URI
  6. 单耳蓝牙耳机怎么连接_蓝牙耳机怎么挑选?推荐性价比高的蓝牙耳机
  7. python torch exp_学习Pytorch过程遇到的坑(持续更新中)
  8. 与台风相伴,他们是前行的逆风者
  9. springboot入门书籍推荐,“最粉嫩
  10. 量子位「AI内参」正式上线,每日AI最全资讯一键Get!
  11. 冰河木马使用(纯属学习)
  12. 我解决了net framework 4安装失败,提示找不到指定文件的问题
  13. 利用C语言实现99乘法表两种方式
  14. IDC:中国云计算市场超10亿 企业云火热
  15. Spring微服务实战第1章 欢迎迈入云世界,Spring
  16. build.sh脚本
  17. 阈的粤语发音_粤语发音规则完整版
  18. IE浏览器历史版本图标大全
  19. vue+jQuery
  20. IPFS - 可快速索引的版本化的点对点文件系统(草稿3)

热门文章

  1. B17_NumPy IO(save,load,savez,loadtxt,savetxt)
  2. Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
  3. solr5.3.1 集成IK中文分词器
  4. 什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查
  5. 查询表空间状态,创建表空间,让表空间的大小自动扩展,删除表空间
  6. 触发器应用场景一: 根据业务逻辑限制某些操作__触发器应用场景二: 校验数据
  7. Hadoop手动升级HA配置手册
  8. cmd命令操作Mysql数据库,命令行操作Mysql
  9. OpenCV—基本数据结构与示例
  10. java实现mysql的主从切换(第二部分)