我们首先来安装Vagrant和Virtual Box
Vagrant是一款基于Virtual Box的虚拟机环境,可以安装多种Box(即预先配置好的开发环境),达到多种开发环境可以快速切换并且不需要担心Package Dependencies。
1、Vagrant的下载地址:https://www.vagrantup.com/downloads.html
2、Virtual Box的下载地址:https://www.virtualbox.org/wiki/Downloads
3、有gi的t跳过,没有的下载git,并且再安装时勾选git-bash
4、添加homestead Box,git bash下运行下面代码
vagrant box add laravel/homestead
选择virtualbox
如果网络可以的话这个过程一般30分钟左右就可以了,如果卡这了,请尝试手动下载
复制链接Downloading自己下载去。然后把下载好的文件执行
vagrant box add laravel/homestead c:/users/Administrator/downloads/homestead.box
完成之后你会发现自己的用户文件夹里多出了一个.vagrant.d的文件夹(C:\Users\Administrator.vagrant.d),我们打开这个文件夹,进入该路径C:\Users\Administrator.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead,在该文件夹下新建一个叫metadata_url的文件:在文件中添加内容
https://atlas.hashicorp.com/laravel/homestead
完成之后,我们就可以开始配置Homestead
Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了所有 Laravel 开发时需要用到的东西,你可以很轻松的通过指定的 Laravel 版本来找到相对应版本并进行安装。
5、Homestead 安装和配置
git clone https://github.com/laravel/homestead.git ~/Homestead
Windows 下,~ 目录代表着 C:\Users\你的用户名,而 ~/Homestead 代表着 C:\Users\你的用户名\Homestead 目录,
# 先cd到刚才下载的Homestead文件夹
$ cd ~/Homestead
# 再使用 Git 检出我们需要的 Homestead 版本
$ git checkout v12.1.0
# 开始初始化Homestead
$ bash init.sh
然后在~/Homestead文件夹中,找到Homestead.yaml的文件,用编辑器打开对其进行配置:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
# folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
# map 是本机的文件夹,to 则对应的是 Homestead 上的文件夹。
folders:
- map: ~/Code
to: /home/vagrant/Code
#sites属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录
#map 是域名,to 则对应的是 Homestead 上的网站目录,注意这里Laravel是我们的项目。
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
首先我们需要建立SSH Key并且填入路径。在Git Bash中,输入:
ssh-keygen -t rsa
一路回车就好了,完成后,我们会在用户根目录下看到一个.ssh文件夹,里面分别有
id_rsa.pub
id_rsa
两个文件,分别对应配置文件中
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rs
其他基本配置默认就好,如果有需要改动folders和sites则手动改就好了,这里要说的就是folders的配置,根据配置文件中的文件名在用户根目录下创建Code文件夹
6、在host文件里面配置域名,路径是C:\Windows\System32\drivers\etc下面的host文件
192.168.10.10 homestead.test
7、启动虚拟机
首次配置完Homestead.yaml 时,需要运行vagrant provision去运行folder和site的映射
然后再运行vagrant up
$ cd ~/Homestead
$ vagrant provision
$ vagrant up
运行成功后,通过 SSH 来登录 Homestead输入
vagrant ssh
# cd进入我们共享的文件夹
$ cd /home/vagrant/Code
#将composer改成中国镜像
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com
创建一个新的laravel项目,注意这里的项目名称要和Homestead.yaml配置文件中的sites的to的项目一样,否则可能出现访问网站时输出No input file specified,原因就是nginx的找不到该项目
$ laravel new Laravel
8、在浏览器里面使用域名homestead.test
恭喜你安装成功了!
吐槽下:不要去看官方的安装文档,下载链接是错的,homestead box 命名是错的,反正是各种坑,浪费我两个下午,看文档时间2021-06-08,官方链接https://learnku.com/docs/laravel-development-environment/8.x/development-environment-windows/9878 说不好人家以后会更新了。
运行vagrant up 报错
A VirtualBox machine with the name ‘homestead’ already exists.
Please use another name or delete the machine with the existing
name, and try again.
可以使用 vagrant global-status 列出虚拟机的名称
$ vagrant global-status
id name provider state directory
-----------------------------------------------------------------------------
12000fe homestead virtualbox poweroff E:/vagrant/homestead
e41c1d2 homestead-7 virtualbox running C:/Users/LC20161370/Homestead
e91507a homestead virtualbox poweroff E:/homestead
然后使用删除重名的虚拟机
vagrant destory id
如果删除不生效直接使用 vm 管理器删除
一些常用的vargant命令
命令行 | 说明 |
---|---|
vagrant init | 初始化 vagrant |
vagrant up | 启动 vagrant |
vagrant halt | 关闭 vagrant |
vagrant ssh | 通过 SSH 登录 vagrant(需要先启动 vagrant) |
vagrant provision | 重新应用更改 vagrant 配置 |
vagrant destroy | 删除 vagrant |