phpize和php api版本不匹配

时间:2013-01-15 04:05:29

标签: php memcached php-extension

我正在尝试在我的mac中安装memcached。我已经下载并安装了它。我也将它添加到php.ini中。但仍然memcached没有加载。我意识到问题在于phpphpize API 版本不匹配。

这是我php -v

时得到的结果
PHP Warning:  PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
 in Unknown on line 0
PHP 5.4.8 (cli) (built: Oct 30 2012 19:29:58) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

如果有人帮我解决这个问题,我真的很感激。欢呼声。

3 个答案:

答案 0 :(得分:8)

是的,您应该通过以下步骤手动构建扩展程序

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

确保您运行phpizephp-config指向正确的php verison。

不在/usr/bin/phpize/usr/include/php

请务必使用--with-php-config

答案 1 :(得分:2)

您需要手动构建PHP扩展。你最终得到的扩展是根据系统的PHP 5.3副本构建的,而不是你自己安装的PHP 5.4。

答案 2 :(得分:0)

按照你的php版本下载phpX.X.tgz,解压缩并将文件php.z,zend_modules.h,zend_extension.h复制到include目录(如果你编辑文件你可以检查正确的api版本并搜索定义API_VERSION,它必须与phpinfo显示的api编号匹配)

换句话说,当您构建扩展时,您必须包含正确的.h文件,它可以从phpxx.tgz源获取