1. 程式人生 > >安裝 MongoDB PHP 驅動 在CentOS 6.x和遇到的問題

安裝 MongoDB PHP 驅動 在CentOS 6.x和遇到的問題

以下安裝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

問題。

[[email protected] 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.

[[email protected] mongo-php-driver]# cd mongo-php-driver

[[email protected] 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

解決問題使用如下:

[[email protected] 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'

[[email protected] mongo-php-driver]# phpize

Configuring for:

PHP Api Version:         20131106

Zend Module Api No:      20131226

Zend Extension Api No:   220131226

[[email protected] 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

[[email protected] 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’.

[[email protected] mongo-php-driver]# make install

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

[[email protected] mongo-php-driver]# echo "extension=mongodb.so" > /etc/php.d/mongo.ini

[[email protected] 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


後一種沒有報錯誤,程式執行也沒有問題!

相關推薦

安裝 MongoDB PHP 驅動CentOS 6.x遇到的問題

以下安裝mongo-php-driver 也許會遇到 PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mongodb.so' - /usr/lib64/php

centos 6.x7.x 下nginx安裝與配置

一、安裝gcc(命令:yum install gcc)   備註:可以輸入gcc -v 查詢版本資訊,看系統是否自帶安裝 二、安裝pcre(命令: yum install pcre-devel) 三、安裝zlib 四、安裝openssl 綜合命令:   yum -y inst

Centos 6.xCentos 7.x的不同

Centos 6.x和CentosCentos 6.x和Centos 7.x的不同

源碼編譯方式安裝mysql服務 (Centos 6.X

app pri root conf make 系統用戶 script ext mysq root 用戶執行 $ yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gc

(總結)CentOS 6.x使用yum快速安裝Apache+PHP+Tomcat(JSP)+MySQL

apache 意思 安裝apache /var/ 軟件 cat yum proxy_ajp alt (總結)CentOS 6.x使用yum快速安裝Apache+PHP+Tomcat(JSP)+MySQL PS:這個是懶人yum快速安裝法,用於開發和測試環境很方便,用於沒有特

HGDB4.3.2在CentOS 6.x安裝解除安裝指導手冊

目錄 文件用途 詳細資訊 相關文件 文件用途 介紹HGDB4.3.2在CentOS 6.8系統上的安裝和解除安裝流程。 詳細資訊 1.安裝版本及注意事項 1.1 安裝版本 作業系統 CentOS 6.8 x86_64

Linux (Ubuntu centos 6.x) 下安裝 zsh

        zsh和bash一樣,是一種Unix shell,但大多數Linux發行版都預設使用bash shell。但Zsh有強大的自動補全引數和自定義配置功能, 強!強!強!, 這裡我們只介紹安裝      

CentOS 6.x安裝VMWare-tools操作指引

vmware tools linuxCentOS 6.x下安裝VMWare-tools操作指引=====第一步:掛載安裝光盤先點擊vmware界面上的安裝vmware-tools,然後掛載光盤mount /dev/cdrom /mnt/第二步:copy壓縮文件到本地目錄cp /mnt/VMwareTools-

CentOS 6.x安裝Zabbix Agent 3.2.x 操作指引

zabbix agent linuxCentOS 6.x 下安裝Zabbix Agent 3.2.x 操作指引=====第一步:安裝rpm包rpm -ivh http://http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.0-1.

CentoS 6.X安裝xtrabackup 2.2.13

xtrabackup、數據備份、mysql備份 作為一線運維或者DBA對數據備份絕對不會陌生,mysqldump、xtrabackup等常見備份姿勢更是非常熟悉,還有很多商業備份工具以及其他的開源備份工具,所謂的冷備、熱備、增量備份什麽的,各種名詞直接晃悠的你頭疼。接下來跟著我繼續踩一遍軟件安裝的坑吧。操

CentOS 6.x 平臺安裝配置ffmpeg

ffmpeg centos6.x一、介紹 FFmpeg 是Fast Forward Mpeg的簡寫,是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec

CentOS 6.x安裝多GCC版本號,cmake的安裝與使用

https 查看信息 faq stat 處理 文件夾 fonts 分享 languages 操作系統:CentOS release 6.5 (Final) 當前gc

mysql-5.6.xmysql-5.7.x二進制安裝

mysql#!/bin/bash#__Author__:Allen_Jol at 2018-03-21 13:52:13#Description: install mysql-5.6.39 or mysql-5.7.21 binary for centos 6.xCPUINFO=`cat /proc/cpui

CentOS 6.x下PXE+Kickstart無人值守安裝操作系統

系統安裝 pxe kickstart 一、PXE1 什麽是PXE: PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網

centos 6.x 安裝配置 node.js 環境

npm fig 環境變量 網站 gpo 代理 ack config htm 下載 可以在本地下載node.js最新版,然後通過ftp工具上傳到服務器,或者直接在服務器終端使用wget命令下載(我當時下載的是node-v6.11.3-linux-x64版本,其他版本請查看上面

CentOS-6.x系統基於python-3.5安裝tensorflow-1.4

tensorflow安裝簡介 tensorflow的安裝分cpu版本和gpu版本, 這裏只討論cpu版本。 google提供了很多種安裝方式, 主要分三種, 一種是pip安裝,非常簡單,重要的是它在各個平臺都是可以用的,包括windows,但是CentOS6需升級glibc和gcc(CXXABI_)版本

CentOS 6.X安裝 R-3.5.0

centos 6 R-3.5.0 1、系統環境 :CentOS release 6.8 (Final) 2、安裝包下載: wget https://cran.r-project.org/src/base/R-3/R-3.5.0.tar.gz 3、解壓並安裝:tar xf R-3.5.0.tar.gz

CentOS 6.x 安裝docker

文章目錄 安裝docker 配置Fedora EPEL 源 安裝docker 啟動docker 檢視docker版本 安裝完成 說明:系統版本 CentOS 6.9 X64 安裝docke

Centos 6.x安裝Zabbix 3.4

    一、關閉SELINUX getenforce  setenforce 0 #把SELinux關閉,此操作為臨時關閉,重啟後失效 vim /etc/selnux/conf 修改為disabled,此操作為永久關閉,重啟後生效。  

CentOS 6.x 安裝Google Chrome 瀏覽器(開發版Chromium)

嘗試在CentOS 6.X上安裝Chrome。網上搜索了好久,官方的說法是隻能在CentOS 7才能裝。 解決方案 使用Chrome的開源版本:Chromium。 下載地址 http://people.centos.org/hughesjr/chromium