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

Laravel API连接MongoDB Atlas遇TLS错误及MongoDB Shell安装失败求助

问题1:Laravel API连接MongoDB Atlas的TLS握手失败

原因分析

  • VPC对等连接配置不完整:AWS VPC与MongoDB Atlas的 peering 状态未激活、CIDR未正确授权,或安全组/网络ACL未放行27017端口双向流量
  • Laravel驱动配置问题:MongoDB驱动版本与Atlas不兼容,或连接字符串缺少正确的TLS参数
  • EB环境证书/版本问题:Elastic Beanstalk环境的CA证书过期,或TLS版本未达到Atlas要求的1.2+标准

解决步骤

1. 校验VPC对等连接

  • 确认AWS VPC与MongoDB Atlas的 peering 状态为Active
  • 在Atlas控制台的「Network Access」中,确保已添加AWS VPC的CIDR到允许列表(或通过peering模式授权访问)
  • 检查AWS VPC安全组:允许出站到MongoDB Atlas集群的27017端口;同时确认Atlas端的网络规则允许来自VPC CIDR的27017端口入站流量
  • 检查VPC网络ACL:双向放行27017端口的TCP流量

2. 修正Laravel连接配置

  • 确保使用的MongoDB驱动(如jenssegers/mongodb)版本与Atlas兼容(Atlas 6.0+建议驱动版本≥3.9)
  • 在.env文件中补充TLS参数:
    MONGO_URI="mongodb+srv://<用户名>:<密码>@ac-qvcir0t.zgs6u4e.mongodb.net/?retryWrites=true&w=majority&tls=true"
    
  • 或在config/database.php中明确配置TLS选项:
    'mongodb' => [
        'driver' => 'mongodb',
        'host' => env('MONGO_HOST'),
        'port' => env('MONGO_PORT', 27017),
        'database' => env('MONGO_DB'),
        'username' => env('MONGO_USER'),
        'password' => env('MONGO_PASSWORD'),
        'options' => [
            'tls' => true,
            'replicaSet' => 'atlas-qvcir0t-shard-0', // 替换为你的集群副本集名称,从Atlas连接字符串获取
        ],
    ],
    

3. 更新EB环境CA证书

如果使用Amazon Linux 2的EB环境,可通过.ebextensions添加配置文件(如01_update_certs.config)更新证书:

commands:
  01_update_ca_certs:
    command: yum update -y ca-certificates

问题2:EC2(Amazon Linux 2023)安装MongoDB Shell失败

原因分析

  • 架构不匹配:你的EC2是x86_64架构,但repo配置的是aarch64(ARM)源,导致包无法兼容
  • 依赖缺失:Amazon Linux 2023使用OpenSSL 3.0,而MongoDB 4.4/5.0版本的Shell依赖已淘汰的OpenSSL 1.0库(libcrypto.so.10、libssl.so.10)
  • 源配置错误:使用了Amazon Linux 2的yum源,而非适配Amazon Linux 2023的源

解决步骤

方法1:通过yum安装兼容版本的Shell

  1. 删除旧的repo文件:
    sudo rm /etc/yum.repos.d/mongodb-org-6.0.repo
    
  2. 创建适配Amazon Linux 2023的x86_64架构repo:
    sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
    EOF
    
  3. 仅安装MongoDB Shell(避免安装完整数据库带来的依赖问题):
    sudo yum install -y mongodb-org-shell
    

方法2:直接下载二进制文件安装(更简单)

  1. 下载x86_64架构的MongoDB Shell二进制包:
    wget https://downloads.mongodb.com/compass/mongosh-1.10.6-linux-x64.tgz
    
  2. 解压并移动到系统可执行路径:
    tar -xvf mongosh-1.10.6-linux-x64.tgz
    sudo cp mongosh-1.10.6-linux-x64/bin/mongosh /usr/local/bin/
    
  3. 验证安装:
    mongosh --version
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:19:49