一 序
Laravel Homestead 是一个打包好各种 Laravel 开发所需软件和工具(PHP, MySQL , PostgreSQL , Nginx , Node , Redis等等)的 Vagrant 盒子 , 而Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境 , 它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境 . 也就是说我们搭建Laravel Homestead , 需要安装一个VirtualBox软件用于创建虚拟的Linux系统 , 还需要安装一个Vagrant软件方便管理VritualBox , 其实说了这么多也就是3个东西 , 如果操作熟练的话 , 10分钟就能将环境搭建完成 .
二 下载安装Git , VritualBox 与 Vagrant
因为Vagrant命令需要在命令行中进行操作 , 所以我们需要先安装Git工具操作命令行 . 那么问题来了 : Windows自带的cmd也是命令行 , 为什么不用cmd呢 ? 答案是: 众所周知windows的很多命令和Linux的命令都是不同的 , 所以为了能在Windows上使用Linux的命令 , 我们就需要通过Git工具来完成 . 可以分别去它们的官网下载安装包 , 也可以去我的百度云备份地址一并下载
Git官网 : 曲境折跃
VritualBox官网 : 曲境折跃
Vagrant官网 : 曲境折跃
百度云传送门 : 曲境折跃
提取密码 : mrta
三 下载安装Homestead
第一种方式 : 在线安装(因为这种方式需要连接国外的资源 , 有可能需要翻墙 , 并且速度特别慢 , 所以不推荐这种方式)
在电脑任意一个文件夹或者桌面 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令开始在线安装
1 | vagrant box add laravel/homestead |
homestead.box离线包百度云传送门 : 曲境折跃
提取密码 : xl0l
下载完成后 , 打开homestead.box所在文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令开始在线安装
四 下载安装Homestead管理脚本
进入任意一个文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令 , 克隆脚本至当前文件夹
1 | git clone https://github.com/laravel/homestead.git |
克隆下来之后 , 继续分别输入以下命令(进入Homestead文件夹 , 切换master分支为稳定版本 , 并且生成Homestead.yaml文件)
1 2 3 | cd Homestead git checkout v7.3.0 ./init.bat |
1 | confg.vm.box_version = settings[ "version" ] ||= ">= 0" |
五 配置SSH秘钥 , 免密码登录
如果不配置SSH秘钥 , 那么每次连接虚拟机时都需要手动输入用户名和密码 , 这是非常麻烦的 , 如果是生产环境 , 这种方式还不安全
下面就开始配置SSH秘钥 , 进入电脑任意一个文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 在命令行中输入以下命令
1 | cd ~/.ssh && ls |
继续输入以下命令 , 即可生成SSH秘钥文件
1 | ssh-keygen -t rsa -C "775126470@qq.com" |
1 确认路径,直接回车选择默认路径即可
2 不使用密码进行登录,直接回车
3 确认密码,直接回车
输入3次回车之后 , 接着输入 ls , 查看文件 , 如下图所示 , 秘钥已经生成了
生成秘钥后的下一步就是配置Homestead实现免密码登录了 , 进入Homestead文件夹 , 找到Homestead.yaml文件 , 并使用编辑器打开 , 修改keys属性中的内容为以下 :
1 2 3 | keys: - ~/.ssh/id_rsa - ~/.ssh/id_rsa.pub |
六 配置共享文件夹与域名
Homestead.yaml文件中的folders属性中列出了本地与Homestead虚拟机环境共享的文件
如下图所示 , 我设置了E盘中的myweb文件夹与虚拟机中的/home/vagrant/www文件夹同步
map就是本地的路径 , to就是虚拟机中的目录 , 这样设置之后 , 当我们修改虚拟机中的www文件夹中的信息 , 或者本地的MyWeb文件夹中的文件后 , 2个文件夹的文件都会保持同步更新
Homestead.yaml文件中的sites属性中列出了自定义域名和与其对应的虚拟机中的文件夹
如下图所示 , 我分别设置了3个自定义域名 , v.com , t.com与s.com , 分别对应几个laravel或TP项目的入口文件 , 众所周知Laravel , TP框架的入口文件是public
这样配置好了之后 , 当我们启动虚拟机 , 用浏览器访问v.com的时候 , 就会访问虚拟机中的/home/vatrant/www/video/public文件 , 也就是该laravel项目的入口 , 因为配置了共享文件 , 所以当我们每次修改本地E盘中的MyWeb/Video中的代码时 , 都会自动同步到虚拟机中 , 同时刷新域名 , 即可看到修改代码的效果
当然 , 我们仅仅配置Homestead.yaml文件是不够的 , 要访问自定义域名必须还得修改HOSTS文件 , HOSTS文件的路径在C:\Windows\System32\drivers\etc里 , 将HOSTS文件拖至桌面打开并修改 , 修改完成后再拖回原位置 , 如下图所示 , 我配置了3个域名都对应192.168.10.10
192.168.10.10与Homestead.yaml中的ip属性相同 , 这是一个私有的ip , 只有本地能访问 , 配置完HOSTS文件就大功告成了 , 接下来就可以使用Vagrant启动虚拟机了
七 Vagrant命令
完成以上所有步骤后 , 进入Homestead文件夹 , 打开命令行 , 输入vagrant up启动虚拟机 , 然后在浏览器访问自定义的域名 , 即可访问相应项目 , 下面是一些常用的vagrant命令
vagrant init # 初始化
vagrant up # 启动虚拟机
vagrant halt # 关闭虚拟机
vagrant reload # 重启虚拟机
vagrant ssh # SSH 至虚拟机
vagrant suspend # 挂起虚拟机
vagrant resume # 唤醒虚拟机
vagrant status # 查看虚拟机运行状态
vagrant destroy # 销毁当前虚拟机
#box管理命令
vagrant box list # 查看本地box列表
vagrant box
add
# 添加box到列表
vagrant box remove # 从box列表移除
还需要注意的一点是 , 当我们每次修改Homestead.yaml文件后 , 再次启动虚拟机 , 需要加上--provision选项 , 重新加载配置
即vagrant up --provision
