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

AWS云实例PHP、MongoDB库更新及Laravel MongoDB连接报错求助

排查解决步骤

前置环境检查

  • 确认AWS Linux实例的PHP MongoDB扩展版本:执行php -i | grep mongodb,如果版本低于1.3 不支持mongodb+srv协议,是第二类报错的核心诱因
  • 确认系统根证书包版本:AWS Linux默认根证书路径为/etc/pki/tls/certs/ca-bundle.crt,旧版本证书会导致TLS校验失败,对应第一类报错

报错2:无法解析mongodb+srv连接串 修复步骤

  • 升级PHP MongoDB扩展到最新稳定版:
    1. 执行sudo yum install php-pear php-devel openssl-devel -y安装依赖包
    2. 执行sudo pecl install mongodb安装最新版本扩展
    3. 编辑PHP配置文件(通常路径为/etc/php.ini或者/etc/php.d/20-mongodb.ini),新增配置项extension=mongodb.so
    4. 重启对应服务:sudo systemctl restart php-fpm httpd,使用Nginx环境则同步执行systemctl restart nginx
    5. 执行php -m | grep mongodb确认扩展加载成功

报错1:TLS证书校验失败 修复步骤

  • 升级系统根证书包:执行sudo yum update ca-certificates -y
  • 手动指定证书路径适配Laravel配置:打开config/database.php,找到mongodb连接配置段,新增参数:
    'options' => [
        'ssl' => [
            'ca_file' => '/etc/pki/tls/certs/ca-bundle.crt',
            'allow_invalid_hostname' => false,
            'verify_peer' => true,
            'verify_peer_name' => true,
        ]
    ]
    
  • 临时测试可关闭证书校验(不建议生产环境长期使用):将上方verify_peer、verify_peer_name参数值改为false即可

Cron Job适配验证

  • Cron运行时使用CLI模式PHP配置,执行php -i | grep 'Loaded Configuration File'确认CLI模式加载的php.ini已开启mongodb扩展
  • 手动触发Cron任务验证:执行sudo -u 运行web服务的用户名 php /你的Laravel项目根路径/artisan 对应Cron任务命令,替换路径和命令即可验证连接是否正常
  • 排查Cron日志定位异常:AWS Linux默认Cron日志路径为/var/log/cron,可查看是否有权限、路径类报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:06:02