最近想试试laravelchina的集成环境Homestead,官方文档看着有点晕,并且安装软件时有坑。记录一次安装Homestead
以下为win安装环境
VirtualBox
这是个虚拟机软件,开源免费强大,和VMware一样,vm收费
Vagrant
虚拟机管理软件,用来自动化创建、配置、删除虚拟机,支持对VirtualBox、VMware操作
Homestead
包含了各种服务端软件(php、nginx等)的虚拟机文件,
Homestead 管理脚本
对Homestead 虚拟机各种服务端软件进行自动化配置,(站点、数据库、共享文件夹,IP等)
一、环境搭建流程概要
- 安装虚拟机软件,VirtualBox
- 下载Homestead(虚拟机文件),安装vagrant(虚拟机管理软件)
- 把虚拟机文件导入到vagrant中
- 下载虚拟机管理脚本, 使用脚本初始化并配置各项设置(虚拟机设置,ssh密钥,站点数据库等)
- 启动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