解决mongdb扩展安装出错问题

报错:

/usr/local/mongo-1.4.0/mongoclient.h:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘php_mongoclient_new’ @

/usr/local/mongo-1.4.0/mongoclient.h:29: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token

In file included from /usr/local/mongo-1.4.0/php_mongo.c:26:

/usr/local/mongo-1.4.0/cursor.h:118: error: expected declaration specifiers or ‘…’ before ‘zend_rsrc_list_entry’

/usr/local/mongo-1.4.0/cursor.h:121: error: expected ‘)’ before ‘*’ token

In file included from /usr/local/mongo-1.4.0/php_mongo.c:36:

/usr/local/mongo-1.4.0/types/id.h:19: error: expected declaration specifiers or ‘…’ before ‘zend_uint’

/usr/local/mongo-1.4.0/types/id.h:20: error: expected declaration specifiers or ‘…’ before ‘zend_uint’

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘OnUpdatePingInterval’:

/usr/local/mongo-1.4.0/php_mongo.c:110: error: ‘new_value_length’ undeclared (first use in this function)

/usr/local/mongo-1.4.0/php_mongo.c:110: error: (Each undeclared identifier is reported only once

/usr/local/mongo-1.4.0/php_mongo.c:110: error: for each function it appears in.)

/usr/local/mongo-1.4.0/php_mongo.c:110: warning: passing argument 1 of ‘is_numeric_string’ from incompatible pointer type

/usr/local/php7/include/php/Zend/zend_operators.h:148: note: expected ‘const char *’ but argument is of type ‘struct zend_string *’

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘OnUpdateIsMasterInterval’:

/usr/local/mongo-1.4.0/php_mongo.c:122: error: ‘new_value_length’ undeclared (first use in this function)

/usr/local/mongo-1.4.0/php_mongo.c:122: warning: passing argument 1 of ‘is_numeric_string’ from incompatible pointer type

/usr/local/php7/include/php/Zend/zend_operators.h:148: note: expected ‘const char *’ but argument is of type ‘struct zend_string *’

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘zm_startup_mongo’:

/usr/local/mongo-1.4.0/php_mongo.c:153: error: ‘php_mongo_cursor_list_pfree’ undeclared (first use in this function)

/usr/local/mongo-1.4.0/php_mongo.c:372:57: error: macro “zend_hash_get_current_data” passed 2 arguments, but takes just 1

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘get_tagset_from_array’:

/usr/local/mongo-1.4.0/php_mongo.c:372: error: ‘zend_hash_get_current_data’ undeclared (first use in this function)

/usr/local/mongo-1.4.0/php_mongo.c:381: warning: passing argument 2 of ‘zend_hash_get_current_key_ex’ from incompatible pointer type

/usr/local/php7/include/php/Zend/zend_hash.h:195: note: expected ‘struct zend_string **’ but argument is of type ‘char **’

/usr/local/mongo-1.4.0/php_mongo.c:381: warning: passing argument 3 of ‘zend_hash_get_current_key_ex’ from incompatible pointer type

/usr/local/php7/include/php/Zend/zend_hash.h:195: note: expected ‘zend_ulong *’ but argument is of type ‘uint *’

/usr/local/mongo-1.4.0/php_mongo.c:381: warning: passing argument 4 of ‘zend_hash_get_current_key_ex’ from incompatible pointer type

/usr/local/php7/include/php/Zend/zend_hash.h:195: note: expected ‘HashPosition *’ but argument is of type ‘ulong *’

/usr/local/mongo-1.4.0/php_mongo.c:381: error: too many arguments to function ‘zend_hash_get_current_key_ex’

/usr/local/mongo-1.4.0/php_mongo.c:387: warning: passing argument 3 of ‘mongo_read_preference_add_tag’ makes pointer from integer without a cast

/usr/local/mongo-1.4.0/mcon/read_preference.h:50: note: expected ‘char *’ but argument is of type ‘int’

/usr/local/mongo-1.4.0/php_mongo.c:429:47: error: macro “add_assoc_string” passed 4 arguments, but takes just 3

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘php_mongo_make_tagsets’:

/usr/local/mongo-1.4.0/php_mongo.c:429: error: ‘add_assoc_string’ undeclared (first use in this function)

/usr/local/mongo-1.4.0/php_mongo.c:463:61: error: macro “zend_hash_get_current_data” passed 2 arguments, but takes just 1

/usr/local/mongo-1.4.0/php_mongo.c: In function ‘php_mongo_use_tagsets’:

/usr/local/mongo-1.4.0/php_mongo.c:463: error: ‘zend_hash_get_current_data’ undeclared (first use in this function)

make: *** [php_mongo.lo] Error 1

解决方案:

curl -O https://pecl.php.net/get/mongodb-1.2.3.tgz

tar zxf mongodb-1.2.3.tgz

cd mongodb-1.2.3

phpize

./configure –with-php-config=php-config

make&&make install

    原文作者:运维经理
    原文地址: https://www.jianshu.com/p/41d842c0a07e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞