Windows 环境下通过 Vagrant 安装 Homestead

1. 简介

Laravel 为开发者提供了一套完善的重量级本地开发环境 Laravel Homestead。

Laravel Homestead 实际是一个打包好各种 Laravel 开发所需软件和工具的 Vagrant 盒子(关于 Vagrant 盒子的释义请参考 Vagrant 官方文档),该盒子为我们提供了一个优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP、Composer、Nginx、MySQL、Memcached、Redis、Node 等其它工具软件,我们也完全不用再担心误操作搞乱操作系统 因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子!

Homestead 可以运行在 Windows、Mac 以及 Linux 等主流操作系统上,预装的软件和工具列表如下:

  • Ubuntu 16.04
  • Git
  • PHP 7.1
  • Nginx
  • MySQL
  • MariaDB
  • SQLite 3
  • Postgres
  • Composer
  • Node(With Yarn, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • ngrok

引用自[ Laravel 5.5 文档 ] 快速入门 重量级开发环境:Homestead 安装使用详细教程

2. 准备工作

需要先安装的软件:

  • Vagrant

  • Oracle VM VirtualBox
    可选,Vagrant 支持的虚拟机有: Parallels, VirtualBox, VMWare_Desktop。本文选用VirtualBox。

  • Git For Windows
    主要是用到 Git Bash,如果你已经有替代的软件,可以不用安装。注意:Windows 的 CMD 是不行的。

可提前下载的文件:

3. 安装

在装备儿工作都做好以后,就可以开始安装了。

如无特殊说明,都可使用 CMD 或者 Git Bash 键入命令,尽量使用 Git Bash,本文使用 $ 来表示 Bash 下的命令,复制命令的时候请勿将 $ 一起复制。 首先使用 Git Bash 键入以下命令生成 ssh 密钥:

1
2
$ cd ~
$ ssh-keygen -t rsa

一路回车即可。

默认安装会将 box 安装在 C:\Users\你的用户名\ 下的,如果你像我 C 盘容量紧缺的情况下,可以更改 Vagrant 的 HOME 路径,将 box 安装到其他地方,更改方法为计算机 > 右键 > 属性 > 高级系统设置 > 高级 > 环境变量 > 新建,变量名:VAGRANT_HOME,变量值:目标路径。改完需要重启一次计算机才能生效。

3.1. 安装 Homestead Vagrant Box

如果你是使用在线安装,可直接键入以下命令:

1
$ vagrant box add laravel/homestead 

然后出现选择虚拟机,本文使用的是 VirtualBox ,键入2,回车,然后等待下载完成。 Add Box Online

如果使用离线安装,在 C:\Users\你的用户名\ 下新建 metadata.json 文件,输入如下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "name": "laravel/homestead",
    "versions": [{
        "version": "3.1.0",
        "providers": [{
            "name": "virtualbox",
            "url": "file:///path/to/boxfile"
        }]
    }]
}

其中 version 根据实际情况填写,下载的是 3.1.0 就填入 3.1.0, url 填写已经下载的 box 的路径,比如在 D 盘根目录,就填写 file://D:/virtualbox.box

保存后键入以下命令:

1
2
$ cd ~
$ vagrant box add metadata.json

等待载入完毕。

若键入:

1
$ vagrant box list

显示结果:

1
laravel/homestead(virtualbox, 3.1.0)

则说明已经安装成功。

3.2. 安装 Homestead

通过克隆 Laravel 的 Github 代码来安装 Homestead :

1
2
$ cd ~
$ git clone https://github.com/laravel/homestead.git Homestead

克隆完成后进入 Homestead 目录进行初始化:

1
2
3
4
5
6
7
$ cd Homestead

// Mac/Linux...
$ bash init.sh

// Windows...
init.bat

4. 配置 Homestead

初始化完成后,使用文本编辑器打开 ../Homestead/ 目录下的 Homestead.yaml

4.1. 配置系统资源

1
2
3
4
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

这几行配置的是:虚拟机 IP 、虚拟机可使用的内存大小、虚拟机可使用的 CPU 数量、使用的虚拟机环境。可根据实际情况修改。

4.2. 配置共享文件夹

1
2
3
folders:
    - map: D:/Laravel/code
      to: /home/vagrant/code

这项配置的是本地与虚拟机共享的目录,如果需要增加共享文件夹的数量,可按格式自行填写即可。

4.3. 配置 Homestead 的 Nginx

1
2
3
sites:
    - map: homestead.app
      to: /home/vagrant/code/project/public

通过 sites 属性可以很方便地将站点映射到虚拟机的指定目录下,而不需要进入虚拟手动修改 Nignx 的配置。如果你打算在同一个Homestead同时开发多个项目,可以按照相同格式添加更多映射。

4.3.1. 配置本机 Host

使用管理员权限用文本编辑器将 C:\Windows\System32\drivers\etc路径下的 hosts 文件打开,向末尾添加一行:

1
192.168.10.10    homestead.app

以后你就可以直接在浏览器中输入 http://homestead.app 访问你的项目站点了。

4.4. 配置数据库

1
2
databases:
    - homestead

本项默认数据库名为 homestead ,使用的数据库为 MySQL ,默认用户名 homestead ,默认密码 secret ,如果需要增加数据库,同样按照格式添加一个数据库名即可,Homestead 将自动为你创建。

5. 启动虚拟系统

安装和配置都完成了,接下来就可以启动 Vagrant Box 了:

1
2
$ cd ~/Homestead/
$ vagrant up

等待虚拟机启动完成。接下来就可以使用 SSH 工具登陆虚拟机了,或者使用 Vagrant 自带的命令登陆亦可:

1
$ vgrant ssh

6. 其他操作

如果你修改了配置文件 Homestead.yaml ,只需要执行以下命令即可生效:

1
$ vagrant reload --provision

关闭虚拟机:

1
$ vagrant halt

销毁虚拟机:

1
$ vagrant destroy 虚拟机名

虚拟机状态:

1
$ vagrant global-status

更多高级玩法可以参考 Vagrant 官方文档

本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于 2023/06/21 14:42 CST
使用 Hugo 构建
主题 StackJimmy 设计