注解: mamp版本是4.0以上的版本, 在/Applications/MAMP/bin/php/php7.1.1/下含有include, 如果不含有需要自己新建文件夹为include, 然后从php官网下载对应版本的php放在include里边, 重新编译 如果需要下载, 下载完以后进入下载的文件, 执行./configure. 如果4.0以上版本含有include就不需要从新下载编译了。
以安装memcache为例
下载memcache压缩包
curl -O http://pecl.php.net/get/memcache-2.2.7.tgz;tar xf memcache-2.2.7.tgz;
cd memcache-2.2.7;
生成configure文件
/Applications/MAMP/bin/php/phpXXX/bin/phpize
./configure --with-php-config=/Applications/MAMP/bin/php/phpXXX/bin/php-config (注意,MAC本身装有php5.3,如果不填可能会最后编译失败)
如果提示找不到zlib 请用brew 安装 brew install zlib
./configure --with-php-config=/Applications/MAMP/bin/php/phpXXX/bin/php-config --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8/
如果提示找不到openssl [configure: error: Cannot find OpenSSL's <evp.h>] 请用brew 安装 brew install OpenSSL
./configure --with-php-config=/Applications/MAMP/bin/php/php5.6.40/bin/php-config --with-openssl-dir=/usr/local/Cellar/openssl/1.0.X/
如果没出错直接make && make install
把编译后的memcache.so复制到/Applications/MAMP/bin/php/phpXXX/lib/php/extensions
对应的php.ini添加
如果m1以上的mac启用so文件出现报错
arning: PHP Startup: Unable to load dynamic library 'pcntl' (tried: '/xxxxx/php/ext/xxx.so' (mach-o file, but is an incompatible architecture (have (arm64), need (x86_64))))) in Unknown on line 0
请 转为x86架构执行 Mac 下 arm64 架构可能不兼容
先执行 arch -x86_64 zsh 然后在执行 configure 、 make 等。
已按arm64编译过的文件夹,建议换个新的(重新下载)