MacOS下PHP项目迁移后无法安装使用Memcache的问题求助
解决MacOS下PHP 5.6/7.0安装Memcache扩展的问题
我之前在Mac上折腾过旧版PHP装Memcache的问题,刚好踩过这些坑,给你几个可行的解决方案——毕竟Memcache(注意不是Memcached)针对PHP 5.6/7.0这类旧版本,官方源确实有点难搞:
方案一:手动编译扩展(最可靠的方式)
因为pecl和brew对旧版本PHP的支持已经弱化,手动编译是最稳妥的:
- 先确保安装了编译依赖:
xcode-select --install,如果已经装过会提示已安装。 - 下载对应PHP版本的Memcache源码:
- PHP 5.6 对应 Memcache 3.0.8(支持该版本的最后一个稳定版)
- PHP 7.0 对应 Memcache 3.0.9
- 解压源码包,进入解压后的目录:
- 生成编译配置:如果是系统或brew装的PHP,直接运行
phpize;如果是XAMPP的PHP,要指定路径,比如/Applications/XAMPP/bin/phpize - 配置编译参数:
./configure --with-php-config=/path/to/your/php-config,这里的php-config要对应你的PHP版本,比如brew装的PHP5.6是php56 php-config,XAMPP的是/Applications/XAMPP/bin/php-config - 编译安装:
make && sudo make install
- 生成编译配置:如果是系统或brew装的PHP,直接运行
- 找到你的php.ini文件(可以通过
php --ini查看路径),添加一行extension=memcache.so - 重启Apache:
sudo apachectl restart(如果是XAMPP,直接在控制面板重启Apache)
方案二:借助第三方brew源安装
有些第三方brew源还维护着旧版PHP的扩展,你可以试试:
- 先添加第三方tap:
brew tap exolnet/homebrew-deprecated - 对应版本安装:
- PHP5.6:
brew install php56-memcache - PHP7.0:
brew install php70-memcache
- PHP5.6:
- 安装完成后,brew会自动帮你把extension配置加到php.ini里,只要重启Apache就行。如果没自动加,手动添上
extension=memcache.so再重启。
方案三:针对XAMPP的特殊处理
如果你用的是XAMPP,要注意它的PHP环境是独立的,别和系统PHP搞混:
- 要么按照方案一的手动编译方式,用XAMPP自带的phpize和php-config来编译扩展,把生成的memcache.so放到XAMPP的扩展目录(一般是
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-xxxxxx/,xxxxxx是对应PHP版本的标识) - 或者找别人预编译好的对应版本的memcache.so文件,放到上述目录,然后修改XAMPP目录下的php.ini(路径是
/Applications/XAMPP/xamppfiles/etc/php.ini),添加extension=memcache.so,最后重启XAMPP的Apache。
几个要注意的坑
- 一定要区分Memcache和Memcached,你要的是前者,别下载错扩展包。
- 编译时必须用对应PHP版本的phpize和php-config,不然编译出来的扩展会不兼容,导致加载失败。
- 如果你同时装了多个PHP版本,运行命令时要指定版本,比如用
php56 -v确认当前用的是不是目标版本,避免改错php.ini。
内容的提问来源于stack exchange,提问作者mooga
相关产品推荐
相关产品推荐

