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

Cocorico安装报错:如何让Composer识别已安装的Mongo PHP扩展?

解决Composer无法识别已安装Mongo PHP扩展的问题

嘿,这个问题我之前踩过坑,核心原因是你混淆了两个完全不同的MongoDB PHP扩展——旧的mongo扩展和新的mongodb扩展,Composer当前依赖的是后者,但你系统里装的是前者。

为什么会出现这个问题?

  • 早期的MongoDB PHP扩展叫mongo,但这个扩展已经被官方废弃,不再维护;
  • 现在官方推荐的是mongodb扩展,也就是Composer报错里要求的ext-mongodb;
  • 你用php -m看到的mongo是旧扩展,和Composer需要的不是同一个东西,所以它识别不出来。

解决步骤

  1. 卸载旧的mongo扩展(可选但推荐)
    如果你的系统里没有其他依赖旧mongo扩展的项目,可以先卸载它:

    # 如果是通过pecl安装的
    sudo pecl uninstall mongo
    
    # 如果是通过apt包管理器安装的(Ubuntu 18.04)
    sudo apt remove php7.1-mongo
    
  2. 安装符合要求的mongodb扩展
    Composer要求的是ext-mongodb ^1.3.0,我们直接安装指定版本更稳妥:

    # 先安装编译依赖
    sudo apt install php7.1-dev libmongodb-dev
    
    # 通过pecl安装指定版本的mongodb扩展
    sudo pecl install mongodb-1.3.0
    

    安装过程中如果出现配置选项提示,直接按回车选默认即可。

  3. 将扩展添加到PHP配置文件
    注意Apache和CLI(Composer使用CLI环境)的PHP配置文件可能是分开的,所以要都配置:

    # 给Apache的PHP环境添加扩展
    echo "extension=mongodb.so" | sudo tee /etc/php/7.1/apache2/conf.d/20-mongodb.ini
    
    # 给CLI的PHP环境添加扩展(Composer用的是这个)
    echo "extension=mongodb.so" | sudo tee /etc/php/7.1/cli/conf.d/20-mongodb.ini
    
  4. 验证安装并重启服务

    # 重启Apache服务
    sudo systemctl restart apache2
    
    # 验证扩展是否安装成功
    php -m | grep mongodb
    

    如果输出mongodb,说明安装成功,此时再运行composer install应该就能正常执行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:03:15