You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 7.4安装mongodb扩展失败:_ZSTD_compress符号未找到

错误原因

日志中的_ZSTD_compress符号缺失,说明mongodb扩展依赖的Zstandard(ZSTD)压缩库未被MAMP的PHP环境正确识别。核心问题分两种情况:

  • MAMP的PHP环境未内置ZSTD库,编译mongodb扩展时自动链接了系统中的ZSTD,但加载时PHP进程找不到对应库文件;
  • M1 Mac的arm64架构与MAMP PHP的架构(可能是x86_64)不匹配,导致编译扩展时使用的ZSTD库架构和PHP进程不一致,符号无法兼容。
解决办法

方法1:手动编译匹配架构的mongodb扩展

  1. 确认MAMP PHP的架构
    执行命令查看:

    file /Applications/MAMP/bin/php/php7.4.33/bin/php
    

    输出若为x86_64则是Intel架构版本,arm64则是原生M1版本。

  2. 安装对应架构的ZSTD库

    • 若为x86_64:用Rosetta终端(右键终端→显示简介→勾选「使用Rosetta打开」)执行:
      arch -x86_64 brew install zstd
      
    • 若为arm64:直接执行:
      brew install zstd
      
  3. 重新编译mongodb扩展
    先卸载已安装的扩展:

    pecl uninstall mongodb
    

    再指定ZSTD路径重新安装对应版本:

    • x86_64架构:
      arch -x86_64 pecl install mongodb-1.16.2 --with-zstd=$(brew --prefix zstd)
      
    • arm64架构:
      pecl install mongodb-1.16.2 --with-zstd=$(brew --prefix zstd)
      
  4. 验证生效
    重启MAMP后,执行命令检查:

    /Applications/MAMP/bin/php/php7.4.33/bin/php -m | grep mongodb
    

    输出mongodb即为成功,也可查看phpinfo确认。

方法2:替换预编译的兼容扩展

若编译操作繁琐,可直接使用匹配版本和架构的预编译mongodb.so:

  1. 确认PHP版本(7.4.33)、扩展目录(/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/)及架构;
  2. 获取对应预编译扩展包,替换原有mongodb.so文件;
  3. 重启MAMP服务器即可。

方法3:检查php.ini配置正确性

确保MAMP的php.ini已正确引用扩展:

  1. 打开MAMP→Preferences→PHP→点击Open php.ini;
  2. 确认存在配置项:
    extension=mongodb.so
    
    若路径识别异常,可改为绝对路径:
    extension=/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/mongodb.so
    
  3. 保存后重启MAMP。

内容的提问来源于stack exchange,提问作者ThinhDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:05:03