Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Mac上的MAMP编译memcache时PHP API版本不匹配_Php_Memcached_Mamp - Fatal编程技术网

为Mac上的MAMP编译memcache时PHP API版本不匹配

为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并将

我的原生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并将内容解压缩到/tmp
  • $/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
  • 在我的php.ini中添加了
    extension=memcache.so
  • 重新启动服务器
  • 这是phpize的输出:

    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才能正确加载它。我已经考虑这个问题好几天了,决定编译一个旧版本,它成功了!!感谢上帝