一.介绍
简单说下Homestead吧,它有两个功能:

  1. 就是为了能够在本地方便开发laravel应用,体现laravel开发的优雅性.(但是前期安装的时候因为各种坑,还是比较难受的)

  2. 使得开发环境和生产环境保持一致。Homestead就是web开发所需软件的一个集成包(.box结尾的文件),包括操作系统(ubuntu),php,mysql,nginx,hhvm,redis,memcache等.根据文件后缀,大家可以猜到这是一个类似"盒子"的东西,其实就是装了"web开发软件"的盒子.ok,Let's start.

二.安装环境+Requirements:

  • 开发环境:Win10

  • Requirements: 1.Virtualbox(虚拟机) 2.vagrant 3.Git

  • 注意事项

    1.win10默认会开启"Hyper-v"服务,得要**关闭**这个服务.
    

图片描述

2.virtualbox下载的时候需要注意一下版本,
有的版本下完以后连适配器都没有,各种各样的问题都有,所以这块我建议大家跟我下一样的吧.

下载链接:VirtualBox-5.0.10-104061-Win.exe
图片描述

3.
  vagrant官网:https://www.vagrantup.com/   //下载最新版本即可
  git官网:https://git-scm.com/downloads

三.安装完毕后注意事项

  • 以上所用到的软件安装这块就不细讲了,都是"傻瓜化"操作.

  • 接下来需要配置一下git的ssh密钥,因为我们要用git从github上把Homestead"clone"下来(注意此Homestead非彼Homestead,后面会看到区别,这块先不解释)
    操作:任意目录,鼠标右键,选择"git bash",执行下面代码

    ssh-keygen -t rsa -C "you@homestead" 
  • 从github克隆Homestead,执行:

     git clone https://github.com/laravel/homestead.git Homestead
  • 上述命令执行完后,会在当前用户的家目录下创建Homestead目录,我们可以执行以下命令进到家目录:

    cd ~      

    注释://查看家目录,pwd 可以从进入相应的文件夹查看目录结构,执行:

      init.bash   //会生成Homestead.yaml文件
  • cd Homestead/
    用编辑器打开Homestead.yaml,做如图配置
    注意:用“空格”,不要用"Tab"键对齐字段,否则Ruby会解析错误
    图片描述

四.启动前注意事项

  1. virtualbox,网线配置:
    要勾选"接入网线"

图片描述

2.如果虚拟机连接方式用了"网络地址转换NAT",得确保本地ip地址和Homestead.yaml中配置的ip地址的网段是一致的如图
图片描述

3.那么问题来了,如果两个网段不一样呢
比如上例中的ipv4地址为10.xx.xx.x,而Homestead.yaml中ip还是192.168.x.x
这是该怎么解决呢?
答:可以这样处理
第一步:virtualbox选择'仅主机'连接方式(所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的);
详细介绍:虚拟机连接方式
图片描述

第二步:配置ip
图片描述

图片描述

之后保存即可。

五.启动

  1. 首先执行(GIT):

    vagrant box add laravel/homestead     //任意目录下都可以
    应该会自动从镜像地址下载Homestead,可以将地址复制出来以后用迅雷下载,我下载了用了一个小时左右就好了(hc-download文件)。
    
    当然这步也可以用离线安装.
    
    首先,将hc-download文件改名为:homestead.box
    执行: vagrant box add laravel/homestead D:/homestead/homestead.box 
    
    百度网盘链接: https://pan.baidu.com/s/1bp079cb 密码: rjpe
  2. 启动,执行:

       cd ~/Homestead
       vagrant up 

    效果如图:图片描述

六.vagrant 常用命令

    vagrant --help
    vagrant up 
    vagrant halt    //优雅关闭Homestead
    vagrant box  list 
    vagrant box  remove '盒子名称'  //从vagrant中去除添加的盒子
    vagrant --reload  //重新加载配置
    .....

lcoding
317 声望40 粉丝

The quality of code is everything...