M1 Mac通过pecl安装MongoDB PHP扩展陷入无限循环求助
解决M1 Mac上pecl安装mongodb-1.17.1扩展make阶段无限循环问题
针对M1 Mac(Monterey 12.5)环境下,用Homebrew安装的PHP 8.3.0通过pecl安装mongodb-1.17.1时make进程陷入无限循环的问题,可尝试以下针对性方案:
方案1:指定ARM64架构编译
M1芯片的架构兼容冲突是此类问题的常见诱因,强制以arm64架构执行编译:
ARCHFLAGS="-arch arm64" pecl install mongodb-1.17.1
若无效,可先设置环境变量再执行安装:
export ARCHFLAGS="-arch arm64" pecl install mongodb-1.17.1
方案2:手动编译并限制线程数
跳过pecl的自动流程,手动控制编译环节,同时限制并行线程数避免死循环:
- 下载并解压mongodb-1.17.1源码:
wget https://pecl.php.net/get/mongodb-1.17.1.tgz tar zxvf mongodb-1.17.1.tgz cd mongodb-1.17.1
- 用Homebrew的phpize初始化编译环境:
/opt/homebrew/bin/phpize
- 配置编译参数,指定MongoDB的Homebrew安装路径(默认路径为
/opt/homebrew/opt/mongodb):
./configure --with-php-config=/opt/homebrew/bin/php-config --with-mongodb=/opt/homebrew/opt/mongodb
- 以2线程执行make(避免多线程触发死循环):
make -j2
- 完成安装:
make install
方案3:调整PHP或扩展版本
PHP 8.3属于较新版本,与mongodb-1.17.1可能存在兼容性适配问题:
- 降级PHP到8.2版本(Homebrew安装):
brew install php@8.2 brew link php@8.2 --force
之后重新执行pecl安装,或尝试安装mongodb扩展的最新稳定版:
pecl install mongodb
方案4:更新编译依赖
确保编译所需工具和依赖为最新状态:
- 更新Xcode命令行工具:
xcode-select --install
- 更新Homebrew及依赖库:
brew update brew upgrade
- 安装编译必备依赖:
brew install pkg-config openssl
内容的提问来源于stack exchange,提问作者Daniel Urbina
相关产品推荐
相关产品推荐

