最近想试试laravelchina的集成环境Homestead,官方文档看着有点晕,并且安装软件时有坑。记录一次安装Homestead
以下为win安装环境


VirtualBox

这是个虚拟机软件,开源免费强大,和VMware一样,vm收费

Vagrant

虚拟机管理软件,用来自动化创建、配置、删除虚拟机,支持对VirtualBox、VMware操作

Homestead

包含了各种服务端软件(php、nginx等)的虚拟机文件,

Homestead 管理脚本

对Homestead 虚拟机各种服务端软件进行自动化配置,(站点、数据库、共享文件夹,IP等)

一、环境搭建流程概要

  1. 安装虚拟机软件,VirtualBox
  2. 下载Homestead(虚拟机文件),安装vagrant(虚拟机管理软件)
  3. 把虚拟机文件导入到vagrant中
  4. 下载虚拟机管理脚本, 使用脚本初始化并配置各项设置(虚拟机设置,ssh密钥,站点数据库等)
  5. 启动vagrant, vagrant按照配置好的信息,使用已经导入的虚拟机文件模板新建一台虚拟机并配置,如果已经新建并配置好了,则会直接启动

二、安装流程及避坑

1. VirtualBox安装

安装完成后打开软件-> 管理 -> 全局设定 -> 常规 -> 默认虚拟电脑位置
把默认位置修改为需要存放虚拟机的位置, 不然vagrant启动后虚拟机就跑到C盘了!


2. 把虚拟机文件导入到vgrant中

安装vagrant软件, 并下载Homestead 虚拟机文件
解压后, 是俩个文件, 一个box 一个json
在导入前需要设置一下vagrant的默认box(模板)路径, 不然默认导入C盘

setx VAGRANT_HOME "D:/*路径*"
//    /M 设置的系统变量,需要管理员权限
setx VAGRANT_HOME "D:/*路径*" /M
//    接下来导入box, add json文件, 导入成功后虚拟机文件即可删除
vagrant box add metadata.json
3. 安装Homestead管理脚本, 并配置虚拟机及环境各项参数

使用GIT克隆

    git clone https://git.coding.net/summerblue/homestead.git Homestead
    //    切换到需要的版本
    git checkout v7.8.0
    //    初始化配置文件, 生成Homestead.yaml 配置文件
    bash init.sh

生成ssh登录的公钥密钥文件

//    生成公钥密钥 大小写敏感
ssh-keygen -t rsa -C "your_email@example.com"
//    接下来要指定名称, 设置密码, 
Enter file in which to save the key (/c/Users/sample/.ssh/id_rsa): 666
Enter passphrase (empty for no passphrase):
//    文件会将在显示的目录中 /c/Users/sample/.ssh/

Homestead.yaml 配置文件

    // 虚拟机配置
    ip: "192.168.10.10"
    memory: 2048
    cpus: 1
    provider: virtualbox
    // SSH公钥密钥设置 路径内放好生成的密钥公钥
    authorize:
     ~/.ssh/id_rsa.pub

    keys:
    - ~/.ssh/id_rsa
    // 共享文件夹
    folders:
        - map: ~/Code
          to: /home/vagrant/Code
    // map 本地  to 虚拟机内路径
    // 站点配置
    sites:
        - map: homestead.test
          to: /home/vagrant/Code/Laravel/public
    // map 域名    to 域名网站路径
    // 域名在本机host文件配置成上面虚拟机配置的IP
    // 数据库配置
    databases:
        - homestead
    // 自定义变量 未使用
    variables:
        - key: APP_ENV
          value: local
4. 启动Vagrant

在Homestead 管理脚本目录内, 配置完配置文件后, 启动Vagrant
如果之前没有启动过, 第一次启动将会创建虚拟机, 目录是VirtualBox设置的默认目录

vagrant up 

三、连接及使用Homestead

首先通过vagrant 启动虚拟机

vagrant up

启动过程中会显示各种信息, 比如端口映射, 共享文件路径, ssh端口用户名等


常用命令

命令行说明
vagrant init初始化 vagrant
vagrant up启动 vagrant
vagrant halt关闭 vagrant
vagrant ssh通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant provision重新应用更改 vagrant 配置
vagrant destroy删除 vagrant

此外我们还可以通过ssh客户端链接, 用户名 端口 链接方式在启动信息里

ssh -i 私钥文件 vagrant@192.168.10.10 -p 22
//    如果生成密钥的时候设置了密码, 登录时还需要输入密码

附Homestead 默认信息项

登录用户名密码 vagrant/vagrant
root用户无密码,登录vagrant 用户后 sudo passwd root 设置密码
MySQL数据库用户名密码 homestead/secret