准备
- 第一步,安装虚拟机VirtualBox
- 第二 步,下载vagrant
- 第三步,安装完毕vagrant之后,运行此步的下载会很慢,根据上面提示的地址,用迅雷或其他下载软件下载,保证下载不会被中断,下载完成后,用以下代码完成安装
1
vagrant box add laravel/homestead
如使用该方法完成安装,则需要更改版本号(默认导入box版本号为0)1
vagrant box add laravel/homestead homestead.box
打开C:\Users\M.vagrant.d\boxes,更改box里的版本号为对应的版本。
第四步,把homestead克隆到本地
1
git clone https://github.com/laravel/homestead.git ~/Homestead
此时我们举例homestead下载到了~/Homestead文件下面
第五步,创建Homestead.yaml配置文件
1
2
3
4
5cd ~/Homestead
// Mac / Linux...
bash init.sh
// Windows...
init.bat此时会生成一个Homestead.yaml文件就是配置文件
Homestead.yaml 配置
- 虚拟机设置
Homestead 支持我们对虚拟机的IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。
1 | ip: "192.168.10.10" |
- SSH 秘钥登录配置
authorize 选项是指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址,虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的
/home/vagrant/.ssh/authorized_keys 文件中,从而实现 SSH免密码登录。在这里我们默认填写即可。
1 | authorize: ~/.ssh/id_rsa.pub |
keys 是数组选项,填写的是本机的 SSH私钥文件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥文件复制到虚拟机的 /home/vagrant/.ssh/ 文件夹中,从而使虚拟机能共享主机上的 SSH 私钥文件,使虚拟机具备等同于主机的身份认证。此功能为 SSH 授权提供了便利,例如在后面章节中,我们只需要在 GitHub 上配置一个 SSH 公钥,即可实现 GitHub 对虚拟机和主机共同认证。
此处我们将公钥和私钥一起同步到虚拟机中:
1 | keys: |
- 共享文件夹配置
我们可以通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
- map 对应的是我们本机的文件夹,格式例如:E:/Homestead/Code,以开发者实际项目目录为准。
- to 对应的是 Homestead 上的文件夹。
1 | folders: |
- 站点配置
站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites 配置所示,将 homestead.test 映射到一个 Laravel 项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。
1 | sites: |
此处的laravle文件并不存在,需要在对应创建
1 | ~/Code/Laravel/public |
根据上面站点地址,如需本地测试,则hosts也需要修改
C:\Windows\System32\Drivers\etc\hosts
1 | 192.168.10.10 homestead.test |
- 数据库配置
我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。
1 | databases: |
- 自定义变量
最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。
1 | variables: |
运行 Vagrant
完成了 Homestead 的配置,接下来我们要开始启动虚拟机了。
在命令中输入
1 | vagrant |
能看到 Vagrant 为我们提供了一些便利的命令行,下面简单介绍一下 Vagrant 常用的一些命令行的使用:
命令行 | 说明 |
---|---|
vagrant init | 初始化 vagrant |
vagrant up | 启动 vagrant |
vagrant halt | 关闭 vagrant |
vagrant ssh | 通过 SSH 登录 vagrant(需要先启动 vagrant) |
vagrant provision | 重新应用更改 vagrant 配置 |
vagrant destroy | 删除 vagrant |
让我们开始启动 Homestead:
1 | > cd ~/Homestead && vagrant up |
第一次启动时,Vagrant 会做以下这几件事情:
- 以导入的 Homestead 虚拟机盒子为模板,新建一台虚拟机;
- 并按照 Homestead.yaml 里的配置信息,对这台新建的虚拟机进行配置;
- 配置完成后启动虚拟机。
成功启动后,还是在 ~/Homestead 目录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:
1 | > vagrant ssh |
在虚拟机界面下可以输入退出虚拟机:
1 | $ exit |
最后尝试关闭 Homestead:
1 | > vagrant halt |