valet 配置 macos 本地 php 8.2 环境核心是「隔离安装 + 正确链接 + 项目结构合规」:需通过 brew tap shivammathur/php 安装 php@8.2,再用 valet use php@8.2 切换并重配 nginx;valet install 启动 dnsmasq/nginx/php-fpm;项目须置于 valet park 目录的一级子目录(如 ~/sites/myapp),访问地址为 http://myapp.test。

用 Valet 配置 macOS 本地 PHP 8.2 环境,核心是「隔离安装 + 正确链接 + 项目结构合规」。它不是装完就通,关键在每一步是否绕过系统干扰、匹配 Valet 的运行逻辑。
安装并切换到 PHP 8.2
Mac 上不能依赖系统自带 PHP(macOS Monterey 起已移除),也不能用 brew install php 这种无版本标识的命令——它默认装最新稳定版,但可能不是 8.2,且易与旧版冲突。
- 先添加第三方 tap(Homebrew 官方已不维护低版本 PHP):
brew tap shivammathur/php - 安装指定版本:
brew install shivammathur/php/php@8.2 - 让 Valet 使用该版本:
valet use php@8.2
这会自动更新 CLI 和 PHP-FPM 的二进制链接,并重配 Nginx - 验证是否生效:
新开终端执行php -v和php-fpm -v,两者都应显示 8.2.x;再运行php -m | grep opcache确认基础扩展已加载
配置 Valet 并启用 .test 域名解析
Valet 不监听 localhost 或端口,它靠 DnsMasq 把所有 *.test 请求导向本地,所以 DNS 和域名规则必须到位。
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
- 确保 80/443 端口空闲(关掉 MAMP、Apache、Docker Desktop 的内置 Nginx)
- 全局安装 Valet:
composer global require laravel/valet - 运行安装命令:
valet install
它会自动安装并启动 DnsMasq、Nginx、PHP-FPM,并注册开机自启 - 检查域名后缀:
valet domain默认是test,如需改,执行valet domain local - 测试 DNS 是否工作:
ping hello.test应返回127.0.0.1;若超时或解析失败,可刷新缓存:sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
让项目被 Valet 正确识别
Valet 不扫描全盘,只认「park 目录下的直接子目录」——这是 404 最常见原因。
- 新建一个统一管理目录,比如:
mkdir ~/Sites && cd ~/Sites - 把项目放进去,路径必须是
~/Sites/myapp,不能是~/Sites/projects/myapp或~/Desktop/myapp - 在
~/Sites目录下执行:valet park
这会让 Valet 把该目录下所有一级子文件夹当作独立站点 - 确认注册成功:
valet parked应列出myapp - 访问地址就是:
http://myapp.test(不是 localhost:8000,也不是 myapp.local)
补充:数据库、HTTPS 和自定义配置
Valet 不管数据库和 HTTPS 配置,这些得手动补全。
-
MySQL/Redis:Valet 不启动它们。用 Homebrew 安装并开启服务:
brew install mysql@8.0 && brew services start mysql@8.0brew install redis && brew services start redis -
HTTPS:对单个项目启用:
cd ~/Sites/myapp && valet secure
浏览器访问https://myapp.test即可,证书由 Valet 自动信任 -
自定义 Nginx 规则:别改
/usr/local/etc/nginx/valet/valet.conf,它每次valet restart都会被覆盖。
改~/.valet/Nginx/myapp.test(文件名要跟域名一致),写完执行valet restart
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










