Laravel 13 要求 PHP ≥ 8.3,Herd 默认PHP版本未必满足,需执行 herd php use 8.3 切换服务端版本,并用 herd php list 确认;项目须置于 ~/Herd 目录下且含 public/index.php 才能自动托管,HTTPS 默认强制启用,调试时需手动关闭 Force HTTPS 开关。

直接上手就能跑,但得注意 Laravel 13 要求 PHP ≥ 8.3,而 Herd 默认安装的 PHP 版本可能不是最新——不手动切到 8.3+,laravel new 或 composer create-project 会卡在依赖解析或报错 “Your requirements could not be resolved”。
确认并切换到 PHP 8.3+
Herd 自带多个 PHP 版本(7.4–8.3),但首次安装后默认不一定启用 8.3。终端里执行 php --version 看到的只是系统 PATH 下的 PHP,不是 Herd 实际服务用的版本。
- 运行
herd php list查看 Herd 内置支持的版本,确认 8.3 是否已下载(若没出现,Herd 会在你首次执行herd php use 8.3时自动下载) - 用
herd php use 8.3切换全局服务 PHP 版本,这会影响 Web 请求、herd tinker和herd artisan - 验证是否生效:打开
http://test.test(任意一个已托管站点),在页面底部或herd open启动的浏览器 DevTools → Network → 查看响应头里的X-Powered-By,应显示PHP/8.3.x
创建 Laravel 13 项目并托管给 Herd
Laravel 13.2.0 官方推荐通过 Composer 安装,且需确保 Composer 是 3.x 版本(Herd 自带的 composer 命令默认已是 3.x,无需额外安装)。
- 进入 Herd 默认停放路径:
cd ~/Herd - 运行
laravel new myapp --git(Herd 自带laravel命令,会自动拉取 13.x 最新稳定版) - 或者用 Composer:
composer create-project laravel/laravel myapp --stability=stable --no-interaction - 项目生成后,
herd list应立刻看到myapp.test;若没出现,检查myapp目录下是否有public/index.php—— 缺失则 Herd 会跳过该目录 - 访问
https://myapp.test(Herd 默认强制 HTTPS,证书自动签发)
常见失败点:HTTPS 强制跳转 & Xdebug 缺失
Laravel 13 的部分调试场景(比如微信 JS-SDK 本地测试、某些 OAuth 回调)会因 Herd 默认开启的 HTTPS 强制跳转而失败,这不是 Laravel 配置问题,而是 Herd 层面的开关。
- 临时关闭 HTTPS:点击菜单栏 Herd 图标 → Settings → HTTP → 关掉
Force HTTPS,不用改任何配置文件 - Xdebug 不是开箱即用的:Herd 默认不含 Xdebug,必须手动安装。先用 Homebrew 安装 PHP(
brew install php@8.3),再用pecl install xdebug,最后把生成的xdebug.so路径和xdebug.mode=debug加入~/Library/Application Support/Herd/config/php/8.3/php.ini - 验证 Xdebug:在项目中写
<?php xdebug_info(); ?>访问该脚本,页面应完整显示 Xdebug 配置表
最易忽略的是 PHP 版本与 Composer 版本的双重匹配——Laravel 13 不接受 PHP 8.2,也不接受 Composer 2.x,而 Herd 自带的工具链虽多数达标,但 PHP 版本切换命令不会自动同步到终端 php 命令,调试时若混用 php -v 和 herd php list 结果,很容易误判环境状态。


















