Valet本身不区分Laravel版本,Laravel 7可用但须用PHP 7.2.5–8.0;需执行valet install验证DNS与端口,确保项目在~/Sites下直接子目录,用valet secure启用HTTPS,并手动启动MySQL服务。

Valet 本身不区分 Laravel 版本,Laravel 7 完全可用,但必须用 PHP 7.2.5–8.0(官方要求),且不能跳过 valet install 后的 DNS 和端口验证。
确认 PHP 版本是否兼容 Laravel 7
Laravel 7 要求 PHP ≥ 7.2.5 且 不支持 PHP 8.1+。Valet 默认可能装的是 PHP 8.2 或 8.3(Homebrew 当前主流版本),直接运行会报 Class "Illuminate\Foundation\Application" not found 或 Composer 安装失败。
- 先查当前 PHP:
php -v;再查 Valet 实际用的 PHP:valet which php(两者可能不一致) - 若系统 PHP 是 8.2,执行
valet use php@7.4(推荐)或valet use php@7.3;Valet 会自动通过 Homebrew 安装对应版本并重配 FPM - 切完必须运行
valet install——不是valet restart,否则 PHP-FPM 配置不会更新,扩展(如pdo_mysql)仍加载失败 - 验证扩展是否就位:
php-fpm -m | grep pdo和php -m | grep pdo输出应一致
项目目录结构必须符合 Valet 约定
Valet 不解析任意路径,它只认两种注册方式:目录级 park 或项目级 link。Laravel 7 项目若放在桌面、~/Downloads 或嵌套子目录(如 ~/Sites/projects/myapp),访问 myapp.test 必然 404。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 推荐做法:创建
~/Sites,把 Laravel 7 项目放进去,确保是~/Sites/myapp(不能多一层) - 进
~/Sites执行valet park;再进项目根目录(含artisan和public/),确认valet parked输出里有myapp - 如果项目已存在且不想挪动,用
valet link myapp(进项目根目录后执行),它会在~/.config/valet/Sites/下建符号链接 - 切勿同时对同一项目既
park又link,Valet 会以link为准,但配置冲突可能导致 Nginx 重载失败
HTTPS 和 .env 配置容易被忽略
Laravel 7 的 Session、CSRF、URL 生成默认依赖 HTTPS(尤其在 APP_URL=https://myapp.test 时)。Valet 不开 HTTPS,asset() 生成的链接仍是 http://,部分浏览器会拦截混合内容。
- 进项目目录立即执行
valet secure;首次运行会弹出钥匙串授权,必须点“始终允许” -
.env中APP_URL必须设为https://myapp.test(不是http,也不是localhost) - 数据库连接若用 MySQL,Valet 不启动它——需手动
brew services start mysql@5.7(Laravel 7 兼容性最稳)或mysql@8.0,然后在.env设DB_HOST=127.0.0.1(别用localhost,macOS 下解析慢且可能走 socket) - 运行迁移前,确保
php artisan config:clear和php artisan cache:clear已执行,避免旧缓存干扰
真正卡住人的往往不是安装命令,而是 valet install 后没验证 valet status 和 ping myapp.test,或是 PHP 版本切换后漏掉 valet install 导致 FPM 没重载——这两步跳过,90% 的 404 和白屏就来了。










