在windows 11上用virtualbox 7.0.14和vagrant 2.4.1搭配homestead快速搭建隔离laravel环境,自动配置nginx/mysql,避免php版本冲突;需预装vc++2019运行库,正确设置hosts及homestead.yaml映射路径。

在 Windows 11 上用 VirtualBox + Vagrant 搭建可复用、隔离的 Laravel 开发环境,避免本地 PHP 版本冲突和扩展缺失问题,全程无需手动装 Nginx、MySQL 或配置 PATH。
安装 VirtualBox 和 Vagrant
下载 VirtualBox 7.0.14(必须 7.0+,旧版不兼容 Windows 11 23H2 内核)和 Vagrant 2.4.1,二者均需管理员权限安装。安装顺序不能颠倒:先装 VirtualBox,再装 Vagrant。
安装 Vagrant 前务必先装 Microsoft Visual C++ 2019 Redistributable(x64),否则 vagrant up 会报错“VCRUNTIME140_1.dll 丢失”。官网下载页有明确提示,云盘链接已附在知识库中。
安装完成后,在 PowerShell 中执行 vagrant --version 和 vboxmanage --version,两行都返回版本号才算就绪。
添加 Homestead Box 并克隆管理脚本
执行命令:vagrant box add laravel/homestead。该命令默认从 HashiCorp Atlas 下载最新 Homestead Box(约 1.2 GB),国内直连极慢,建议用百度网盘离线下载后本地加载:
方法一(推荐):下载 homestead-v14.0.0.virtualbox.box 后运行:vagrant box add laravel/homestead D:\Downloads\homestead-v14.0.0.virtualbox.box
方法二:若网络尚可,直接运行下载命令,等待进度条走完即可,中途断连需重试,不要强制终止终端,否则 box 文件损坏需手动清理 ~/.vagrant.d/boxes 目录。
接着执行:git clone https://github.com/laravel/homestead.git ~/Homestead && cd ~/Homestead && git checkout release。这一步拉取的是 Homestead 管理脚本,不是虚拟机镜像本身,必须在用户目录下操作,不能放在中文路径或 OneDrive 同步文件夹内,否则 init.sh 会失败。
初始化并配置 Homestead.yaml
第一步:在 ~/Homestead 目录下运行 bash init.sh(Windows 用户可用 Git Bash 或 WSL2 执行),生成 Homestead.yaml 文件到 ~/.homestead/。
第二步:用 VS Code 或 Notepad++ 打开 ~/.homestead/Homestead.yaml,按以下结构修改(仅保留必要字段,删掉注释行):
① 修改 IP 和文件夹映射:
ip: "192.168.56.10"
folders:
- map: C:\dev\laravel-apps
to: /home/vagrant/code
② 配置站点(注意缩进必须是空格,不能用 Tab):
sites:
- map: myapp.test
to: /home/vagrant/code/myapp/public
③ 添加数据库名(可选,但建议写上):
databases:
- myapp
⚠️ 注意:map 路径中的 C:\dev\laravel-apps 必须提前手动创建,且不能包含空格或中文字符;to 路径末尾不加斜杠,否则 nginx 会 403。
启动虚拟机并部署 Laravel 项目
在 ~/Homestead 目录下执行:vagrant up。首次运行会自动导入 box、创建虚拟机、安装依赖、挂载共享文件夹,耗时约 8–12 分钟。
启动成功后,打开 Windows 的 C:\Windows\System32\drivers\etc\hosts 文件(需用记事本以管理员身份打开),在末尾新增一行:192.168.56.10 myapp.test。
接着执行:vagrant ssh 进入虚拟机,运行以下命令:
cd /home/vagrant/code
composer create-project --prefer-dist laravel/laravel myapp
等待安装完成,退出 SSH:exit。
此时访问 http://myapp.test,页面显示 Laravel 默认欢迎页即表示全部就绪。











