AtmosphereMao

准备

  • 第一步,安装虚拟机VirtualBox
  • 第二 步,下载vagrant
  • 第三步,安装完毕vagrant之后,运行
    1
    vagrant box add laravel/homestead
    此步的下载会很慢,根据上面提示的地址,用迅雷或其他下载软件下载,保证下载不会被中断,下载完成后,用以下代码完成安装
    1
    vagrant box add laravel/homestead homestead.box
    如使用该方法完成安装,则需要更改版本号(默认导入box版本号为0)

打开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
    5
    cd  ~/Homestead
    // Mac / Linux...
    bash init.sh
    // Windows...
    init.bat

    此时会生成一个Homestead.yaml文件就是配置文件

Homestead.yaml 配置

  • 虚拟机设置

Homestead 支持我们对虚拟机的IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。

1
2
3
4
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
  • 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
2
3
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
  • 共享文件夹配置

我们可以通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。

  1. map 对应的是我们本机的文件夹,格式例如:E:/Homestead/Code,以开发者实际项目目录为准。
  2. to 对应的是 Homestead 上的文件夹。
1
2
3
folders:
- map: ~/Code
to: /home/vagrant/Code
  • 站点配置
    站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites 配置所示,将 homestead.test 映射到一个 Laravel 项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。
1
2
3
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public

此处的laravle文件并不存在,需要在对应创建

1
~/Code/Laravel/public

根据上面站点地址,如需本地测试,则hosts也需要修改
C:\Windows\System32\Drivers\etc\hosts

1
192.168.10.10  homestead.test
  • 数据库配置

我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。

1
2
databases:
- homestead
  • 自定义变量

最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。

1
2
3
variables:
- key: APP_ENV
value: local

运行 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 会做以下这几件事情:

  1. 以导入的 Homestead 虚拟机盒子为模板,新建一台虚拟机;
  2. 并按照 Homestead.yaml 里的配置信息,对这台新建的虚拟机进行配置;
  3. 配置完成后启动虚拟机。

成功启动后,还是在 ~/Homestead 目录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:

1
> vagrant ssh

在虚拟机界面下可以输入退出虚拟机:

1
$ exit

最后尝试关闭 Homestead:

1
> vagrant halt