laravel valet适合macos/linux单人极简开发,内存仅7mb;sail基于docker实现跨平台生产一致环境,支持redis、meilisearch等完整栈,适用于团队协作与复杂项目。

选对本地开发环境,能省下大量调试时间。Laravel Sail 和 Valet 都是官方推荐方案,但定位不同:Sail 偏向跨平台、生产一致;Valet 专注 macOS/Linux 极简高效。不需纠结“哪个更好”,关键看你的操作系统、团队协作需求和机器资源。
适合用 Laravel Valet 的情况
Valet 是为 macOS 和 Linux 设计的轻量级方案,全程命令行操作,不依赖 Docker 或虚拟机,启动快、内存占用低(约 7 MB),特别适合单人开发、快速验证或老设备运行。
- 系统是 macOS 或主流 Linux(如 Ubuntu 24.04),且已装 Homebrew 或 apt
- 本地没跑 Apache/Nginx 等占 80 端口的服务
- 项目以 PHP + MySQL 为主,不需要 Redis、Mailhog 等额外服务
- 想用 myapp.test 这类域名直接访问,且自动支持 HTTPS
适合用 Laravel Sail 的情况
Sail 是基于 Docker 的封装工具,真正实现“一次配置,处处运行”。它把 PHP、Nginx、MySQL、Redis 等打包进容器,环境与线上高度一致,适合多人协作、CI/CD 对接或复杂中间件调试。
- 开发环境跨 Windows/macOS/Linux,或团队成员系统不统一
- 项目含队列、广播、搜索(Meilisearch)、邮件预览(Mailhog)等扩展功能
- API 项目涉及 CORS、HTTPS、重写规则等真实服务器行为,需要完整栈模拟
- 你已安装 Docker Desktop,且能配置国内镜像加速器(如网易镜像源)
Valet 和 Sail 的关键操作差异
两者安装逻辑完全不同,搞错步骤容易卡住。重点不是“怎么装”,而是“什么时候该做什么”。
- Valet 安装后要先 valet install,再 valet park 或 valet link —— 否则域名不生效
- Sail 必须在 Laravel 项目内执行 php artisan sail:install,生成 docker-compose.yml 后再 ./vendor/bin/sail up -d
- 改了 .env 文件,Valet 不用重启;Sail 必须 sail down && sail up -d 才生效
- Sail 连数据库必须用 DB_HOST=mysql(容器名),不是 127.0.0.1;Valet 则直连本机 localhost
新手常见问题速查
遇到报错别急着重装,多数问题出在细节上。
- 第一次 sail up 卡住:大概率是 Docker 镜像拉取超时,先配好国内加速器,再加 --build 参数重试
- valet ping xxx.test 没响应:检查是否运行了 valet install,并确认 dnsmasq 已启动
- Sail 中 MySQL 连不上:确认 services.mysql 在 docker-compose.yml 中未被注释,且 sail mysql 能进入
- Valet 切换 PHP 版本失败:执行 valet use php@8.2,Valet 会自动通过 Homebrew 安装对应版本











