为Mac上的MAMP编译memcache时PHP API版本不匹配
我的原生Apache/PHP设置可以正确使用PHP5.3.15和memcache。那里一切都很好。但是我也希望能够在本地运行PHP5.2实例。所以我决定最简单的方法就是使用MAMP 安装MAMP很容易,几秒钟就可以启动服务器。我遇到的唯一问题是编译和安装5.2.17的memcache扩展(MAMP附带的版本) 以下是我安装它所采取的步骤:为Mac上的MAMP编译memcache时PHP API版本不匹配,php,memcached,mamp,Php,Memcached,Mamp,我的原生Apache/PHP设置可以正确使用PHP5.3.15和memcache。那里一切都很好。但是我也希望能够在本地运行PHP5.2实例。所以我决定最简单的方法就是使用MAMP 安装MAMP很容易,几秒钟就可以启动服务器。我遇到的唯一问题是编译和安装5.2.17的memcache扩展(MAMP附带的版本) 以下是我安装它所采取的步骤: 下载PHP5.2.17源文件并将它们放在我的 MAMP/bin/php/php5.2.17/include/php文件夹 下载memcache-2.2.7并将
$/Applications/MAMP/bin/php/php5.2.17/bin/phpize
为5.2.17设置环境$MACOSX_部署_目标=10.8 CFLAGS='-O3-fno公共-arch i386
-arch x86_64'LDFLAGS='-O3-arch i386-arch x86_64'cxflags='-O3-fno-common-arch i386-arch x86_64'./configure--with-php-config=/Applications/MAMP/bin/php/php5.2.17/bin/php-config
$make
$cp/tmp/memcache-2.2.7/memcache-2.2.7/modules/memcache.so
/Applications/MAMP/bin/php/php5.2.17/lib/php/extensions/no-debug-non-zts-20060613
extension=memcache.so
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
我在php日志中发现以下错误:
04-Jul-2013 00:32:03] PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0
从phpize命令中,我会认为扩展是用正确的API版本构建的。但是API日志告诉我不是这样的。还值得注意的是,20090626是我的原生PHP的API版本。所以我认为它仍然是用我的原生版本编译的(虽然不确定)
有人知道为什么它没有使用正确的API版本编译吗?好的,所以如果您使用的是PHP5.2.17,您必须使用memcache-2.2.5才能正确加载它。我已经考虑这个问题好几天了,决定编译一个旧版本,它成功了!!感谢上帝