Laravel 8.x 搭配 Sail 使用时 Mailhog web 界面无法访问如何解决?
Laravel Sail MailHog 8025端口无法访问排查步骤
- 第一步:确认MailHog容器正常运行
执行命令./vendor/bin/sail ps查看所有服务运行状态,确认mailhog服务的状态为Up。如果服务未启动,先检查项目根目录的docker-compose.yml文件中是否保留了MailHog的默认配置,确认配置存在后执行./vendor/bin/sail up -d重启所有服务即可。 - 第二步:检查端口映射与占用情况
首先查看docker-compose.yml中MailHog的端口配置,默认Web界面端口映射规则为${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025,如果你在.env文件中自定义了FORWARD_MAILHOG_DASHBOARD_PORT参数,需要使用你自定义的端口访问。
同时可以执行端口占用检查命令确认8025端口未被其他本地服务占用:- Mac/Linux:
lsof -i :8025 - Windows:
netstat -ano | findstr :8025
若端口被占用,要么关闭占用端口的服务,要么在.env中新增FORWARD_MAILHOG_DASHBOARD_PORT=自定义端口(比如8026),重启Sail后用新端口访问。
- Mac/Linux:
- 第三步:适配特殊运行环境
如果你在WSL2环境下运行Sail,存在localhost端口转发失效的情况,可以在WSL终端执行ip addr show eth0找到WSL的IP地址(一般为192.168开头的内网IP),用http://WSL的IP:8025访问即可。 - 第四步:确认配置生效
修改完.env相关配置后需要重启Sail加载新配置:先执行./vendor/bin/sail down停止服务,再执行./vendor/bin/sail up -d启动,同时可以执行./vendor/bin/sail artisan config:clear清除Laravel配置缓存避免旧配置干扰。 - 第五步:查看服务日志定位错误
以上步骤都无法解决时,执行./vendor/bin/sail logs mailhog查看MailHog服务的运行日志,根据日志中的错误信息针对性排查问题。
内容的提问来源于stack exchange,提问作者Nel
相关产品推荐
相关产品推荐

