本地开发需在 /etc/hosts(Mac/Linux)或 C:\Windows\System32\drivers\etc\hosts(Windows)中以管理员权限添加 127.0.0.1 tenant1.example.com 等行,禁用 localhost,每行一个域名;改完后执行 ping tenant1.example.com 验证解析,并确保 Web 服务器配置泛域名支持(如 server_name *.example.com;),同时同步设置 .env 中 APP_URL 和 SESSION_DOMAIN=.example.com。

本地开发时,Laravel 12 的域名限制(比如 Route::domain() 或租户中间件)必须依赖系统能正确解析子域名,否则请求压根不会到达 Laravel,测试就无从谈起。关键不是“加一行”,而是**按规则批量添加、确保格式和权限正确**。
hosts 文件要加哪些行
假设你的主域是 example.com,想测试租户 tenant1.example.com 和后台 admin.example.com:
-
127.0.0.1 example.com(主站,可选但建议加上) 127.0.0.1 tenant1.example.com127.0.0.1 tenant2.example.com127.0.0.1 admin.example.com-
127.0.0.1 api.example.com(如需 API 子域)
⚠️ 注意:不能写 localhost,必须用 127.0.0.1;每行一个域名,不能用逗号或空格分隔多个域名;.test 或 .local 后缀也可用,但需和代码中 APP_URL、路由配置保持一致。
怎么安全修改 hosts 文件
Windows 用户务必以管理员身份运行记事本;Mac/Linux 用户需用 sudo 编辑:
- Windows:右键「记事本」→「以管理员身份运行」→ 文件 → 打开 → 路径:
C:\Windows\System32\drivers\etc\hosts→ 在末尾另起一行添加 → 保存 - Mac:终端执行
sudo nano /etc/hosts→ 输入密码 → 编辑 →Ctrl+O保存 →Ctrl+X退出 - Linux:同 Mac,路径也是
/etc/hosts
保存失败?大概率是没管理员权限,重试并确认提示框允许写入。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
改完 hosts 后必须做的验证
别急着跑 Laravel,先确认系统已识别:
- 终端执行
ping tenant1.example.com,应返回Reply from 127.0.0.1 - 浏览器访问
http://tenant1.example.com,如果看到 Laravel 欢迎页或 404(而非“无法连接”),说明已通达应用层 - 若仍报 DNS 错误或连接被拒绝,请检查 Web 服务器(如 Apache/Nginx)是否已配置泛域名支持(例如 Nginx 的
server_name *.example.com;)
本地环境如 Laragon、Valet、Homestead 还需额外启用虚拟主机功能,仅改 hosts 不够。
配合 Laravel 12 的实际使用提醒
hosts 配好只是第一步。你还得同步调整:
-
.env中的APP_URL=http://tenant1.example.com(用于生成链接、资产 URL) -
SESSION_DOMAIN=.example.com(加点开头,让 Cookie 在所有子域名下共享) - 如果用了 HTTPS 测试(如 Valet + mkcert),证书必须是泛域名(
*.example.com),单域名证书不认子域
不复杂但容易忽略。

















