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

Laravel Sail多项目Redis端口冲突:连接被拒问题排查

解决Laravel Sail中Redis端口修改后连接拒绝问题

核心问题分析

你混淆了宿主机端口映射和容器内部通信端口:Docker端口映射6380:6379是让宿主机通过6380访问Redis容器,但同一Docker网络内的Laravel容器与Redis容器通信时,必须用Redis容器内部的端口6379,而非宿主机的映射端口6380。

分步解决方案

  • 修正.env配置
    将.env中的REDIS_PORT改回6379,同时确保REDIS_HOST设置为你的Redis容器名称(查看项目docker-compose.yml中Redis服务的container_name或服务名,默认是redis):

    REDIS_HOST=redis
    REDIS_PORT=6379
    
  • 重启容器生效配置
    停止并重启容器,确保端口映射和网络配置更新:

    sail down
    sail up -d
    

    若之前的容器配置有残留,可加上-v清理卷(注意:会删除Redis数据,谨慎使用):

    sail down -v
    sail up -d
    
  • 彻底清理缓存
    执行以下命令清除配置缓存和应用缓存,确保新配置生效:

    sail artisan config:clear
    sail artisan cache:clear
    
  • 验证容器间通信
    进入Laravel容器,用redis-cli测试与Redis容器的连接:

    sail shell
    redis-cli -h redis -p 6379
    

    若能成功进入Redis交互界面,说明通信正常。

  • 排查宿主机6379端口可访问问题
    宿主机仍能访问6379,大概率是其他Laravel项目的Redis容器占用了该端口,或是宿主机本地安装了Redis服务。可通过以下命令查看端口占用:

    # macOS/Linux
    lsof -i :6379
    # Windows
    netstat -ano | findstr :6379
    

    确认占用来源后,可停止对应服务或调整其他项目的端口映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:12:08