以下安装mongo-php-driver 也许会遇到
遇到如下问题:
root1@ubuntu:~/software/mongo-php-driver$ /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
/usr/bin/m4:config.m4:373: cannot open `src/libmongoc/build/autotools/m4/ax_prototype.m4': No such file or directory
/usr/bin/m4:config.m4:374: cannot open `src/libmongoc/build/autotools/CheckCompiler.m4': No such file or directory
/usr/bin/m4:config.m4:375: cannot open `src/libmongoc/build/autotools/WeakSymbols.m4': No such file or directory
/usr/bin/m4:config.m4:376: cannot open `src/libmongoc/build/autotools/m4/ax_pthread.m4': No such file or directory
/usr/bin/m4:config.m4:410: cannot open `src/libbson/build/autotools/CheckAtomics.m4': No such file or directory
/usr/bin/m4:config.m4:411: cannot open `src/libbson/build/autotools/FindDependencies.m4': No such file or directory
/usr/bin/m4:config.m4:412: cannot open `src/libbson/build/autotools/m4/ac_compile_check_sizeof.m4': No such file or directory
/usr/bin/m4:config.m4:413: cannot open `src/libbson/build/autotools/m4/ac_create_stdint_h.m4': No such file or directory
/usr/bin/m4:config.m4:455: cannot open `src/libmongoc/build/autotools/Versions.m4': No such file or directory
/usr/bin/m4:config.m4:469: 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
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'
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.