memcache编译安装报错之解决方法 今天安装memcache,奇葩错误,进入正题。
#wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
#tar -zvxf memcache-2.2.3.tgz
#cd memcache-2.2.3
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make
//以上参照安装步骤。问题来了:
编译是顺利的,到了make这一步报错。
123456789101112 /usr/local/src/memcache-2.2.3/memcache.c: 在函数‘php_mmc_connect'中:/usr/local/src/memcache-2.2.3/memcache.c:1902: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:1919: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘zif_memcache_add_server'中:/usr/local/src/memcache-2.2.3/memcache.c:1975: 错误:提供给函数‘zend_is_callable'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:2003: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘zif_memcache_set_server_params'中:/usr/local/src/memcache-2.2.3/memcache.c:2059: 错误:提供给函数‘zend_is_callable'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘mmc_find_persistent'中:/usr/local/src/memcache-2.2.3/memcache.c:2159: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:2177: 错误:提供给函数‘zend_list_insert'的实参太少make: *** [memcache.lo] 错误 1
·网上找了很多资料关于make报错问题,但始终没有找到解决方法,自己测试了很多次后才能有以下结论:
根据错误,进行修改:
vim memcache.c
1.报错1902,1919,2003时更改以下参数:
将所有的:zend_list_insert(pool, le_memcache_pool);
改为:zend_list_insert(pool, le_memcache_pool TSRMLS_CC);
2.报错2159,2177时更改以下参数:
将所有的:zend_list_insert(mmc, le_pmemcache);
改为:zend_list_insert(mmc, le_pmemcache TSRMLS_CC);
3.报错1975,2059时更改以下参数:
讲所有的:if (!zend_is_callable(failure_callback, 0, NULL))
改为:if (!zend_is_callable(failure_callback, 0, NULL, NULL))
修改完成后,重新make编译;
完成后不要忘记echo一下看看命令是否正确~!
以上希望能帮到广大学习Linux的学者~!
#wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
#tar -zvxf memcache-2.2.3.tgz
#cd memcache-2.2.3
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make
//以上参照安装步骤。问题来了:
编译是顺利的,到了make这一步报错。
123456789101112 /usr/local/src/memcache-2.2.3/memcache.c: 在函数‘php_mmc_connect'中:/usr/local/src/memcache-2.2.3/memcache.c:1902: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:1919: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘zif_memcache_add_server'中:/usr/local/src/memcache-2.2.3/memcache.c:1975: 错误:提供给函数‘zend_is_callable'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:2003: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘zif_memcache_set_server_params'中:/usr/local/src/memcache-2.2.3/memcache.c:2059: 错误:提供给函数‘zend_is_callable'的实参太少/usr/local/src/memcache-2.2.3/memcache.c: 在函数‘mmc_find_persistent'中:/usr/local/src/memcache-2.2.3/memcache.c:2159: 错误:提供给函数‘zend_list_insert'的实参太少/usr/local/src/memcache-2.2.3/memcache.c:2177: 错误:提供给函数‘zend_list_insert'的实参太少make: *** [memcache.lo] 错误 1
·网上找了很多资料关于make报错问题,但始终没有找到解决方法,自己测试了很多次后才能有以下结论:
根据错误,进行修改:
vim memcache.c
1.报错1902,1919,2003时更改以下参数:
将所有的:zend_list_insert(pool, le_memcache_pool);
改为:zend_list_insert(pool, le_memcache_pool TSRMLS_CC);
2.报错2159,2177时更改以下参数:
将所有的:zend_list_insert(mmc, le_pmemcache);
改为:zend_list_insert(mmc, le_pmemcache TSRMLS_CC);
3.报错1975,2059时更改以下参数:
讲所有的:if (!zend_is_callable(failure_callback, 0, NULL))
改为:if (!zend_is_callable(failure_callback, 0, NULL, NULL))
修改完成后,重新make编译;
完成后不要忘记echo一下看看命令是否正确~!
以上希望能帮到广大学习Linux的学者~!