一、资源准备
链接:http://pan.baidu.com/s/1mh7qUBe 密码:p4wx
1. virtualbox.box文件放在C盘根目录上。
2. metadata.json文件放在C盘用户目录上。比如我的是 C:\Users\pc
3. Git-2.9.3-64-bit.exe 下载安装,全部默认就好。
4. vagrant_1.8.5.msi 下载安装。
5. VirtualBox-5.1.4-110228-Win.exe 下载安装。
二、简介
1. 什么是vagrant?
VirtualBox相信很多人都用过,它是一个虚拟化软件,用来在我们的电脑上虚拟出一电脑来,和 VMware Workstation, kvm, xen等是一类东西(专业点的说法叫Hypervisor),不过它提供易用的界面(VMware也有),对各平台的支持(Linux, Win, Mac),又非常的轻量,最关键的free呀,所以使用非常广泛。
我们平时使用VirtualBox最常见的情况就是,自己电脑是个Win,想跑个Linux,或者电脑是个Linux,要跑win上网银啊,QQ什么的 win only之类的,虽然有wine这样的东东,可以在Linux下跑win下的软件,但有个win系统稳定性不更好么,并且现在的电脑配置,完全不用担心虚拟机消耗内存CPU什么的,你不用那才是浪费呢,何况VirtualBox这么轻量。个人体验,弄个xp虚拟机跑QQ资源消耗比chrome或者ff登webQQ要少,可恶的用了多少js。。。
对天天码代码的苦逼程序员来说,VirtualBox就不能是简简单单的挂个Q这么用了,程序员搞最多的就是码代码了,可能做很多个项目,公司里搞java的,php的,自己回家再玩个python什么的,想体验下新版本的mongodb或者nginx,Emacs或者vim的配置啦,保不准哪个项目前个版本的数据库是mysql,下个版本用了postgresql, 这么多东西全都搞在一起,装在一个电脑上,肯定会被这各种配置环境搞的晕晕的,烦不胜烦。
怎么办呢,最好是每个项目都有一个干净的开发环境,只为这个项目,可是我们不可能为每一个项目配一个电脑吧,有了,虚拟机,给每一个项目配一个虚拟机,开发A的时候就启A的虚拟机,这样各个开发环境互相独立,干干净净。还有一个问题,我们的项目有多个开发人员,如何保障大家的开发环境都一样呢,总不能每个人都一个个点击鼠标,填写配置参数,建好后上支一个个软件安装吧,这太麻烦了,太不geek了。我们想要的是,环境只配置一遍,然后可以把这个环境打包deliver给别人,别人拿到后,直接启起来就可以用。那有没有这样的东西呢,肯定是有的,Vagrant,它就是用来干这个的。
2.什么是homestead?
homestead就上面红色标注laravel官方打包给我们使用的环境,也就是资源准备里的第一个文件virtualbox.box。它包含以下东西:
三、安装步骤
Git bash 下
1. 输入 vagrant box add metadata.json
2. 输入 <span class="token operator">git clone https<span class="token punctuation">:<span class="token operator">/<span class="token operator">/github<span class="token punctuation">.com<span class="token operator">/laravel<span class="token operator">/homestead<span class="token punctuation">.git Homestead</span></span></span></span></span></span></span></span>
3. 输入 bash init<span class="token punctuation">.sh</span>
这时你的用户目录下会多了一个 .homestead 文件夹,里面有一个 Homestead.yaml 文件,这是homestead配置文件,我们日常开发中经常会用到的。现在对这个文件进行编辑
<span style="color: #008080;"> 1</span> --- <span style="color: #008080;"> 2</span> <span style="color: #000000;">#虚拟机的ip地址 </span><span style="color: #008080;"> 3</span> ip: <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.10</span><span style="color: #800000;">"</span> <span style="color: #008080;"> 4</span> <span style="color: #000000;">#分配给虚拟的内存 </span><span style="color: #008080;"> 5</span> memory: <span style="color: #800080;">2048</span> <span style="color: #008080;"> 6</span> <span style="color: #000000;">#cpu数 </span><span style="color: #008080;"> 7</span> cpus: <span style="color: #800080;">2</span> <span style="color: #008080;"> 8</span> <span style="color: #000000;">provider: virtualbox </span><span style="color: #008080;"> 9</span> <span style="color: #008080;">10</span> authorize: ~/.ssh/<span style="color: #000000;">id_rsa.pub </span><span style="color: #008080;">11</span> <span style="color: #008080;">12</span> <span style="color: #000000;">keys: </span><span style="color: #008080;">13</span> - ~/.ssh/<span style="color: #000000;">id_rsa </span><span style="color: #008080;">14</span> <span style="color: #008080;">15</span> <span style="color: #000000;">#设置主机与虚拟机的共享文件夹 </span><span style="color: #008080;">16</span> <span style="color: #000000;">folders: </span><span style="color: #008080;">17</span> <span style="color: #000000;"> #主机 </span><span style="color: #008080;">18</span> - map: ~/Code/<span style="color: #000000;">test </span><span style="color: #008080;">19</span> <span style="color: #000000;"> #虚拟机 </span><span style="color: #008080;">20</span> to: /home/vagrant/Code/<span style="color: #000000;">test </span><span style="color: #008080;">21</span> <span style="color: #000000;">#设置域名与访问地址 </span><span style="color: #008080;">22</span> <span style="color: #000000;">sites: </span><span style="color: #008080;">23</span> -<span style="color: #000000;"> map: test.app </span><span style="color: #008080;">24</span> to: /home/vagrant/Code/test/<span style="color: #0000ff;">public</span> <span style="color: #008080;">25</span> <span style="color: #000000;">#数据库 </span><span style="color: #008080;">26</span> <span style="color: #000000;">databases: </span><span style="color: #008080;">27</span> -<span style="color: #000000;"> homestead </span><span style="color: #008080;">28</span> <span style="color: #008080;">29</span> <span style="color: #000000;"># blackfire: </span><span style="color: #008080;">30</span> # -<span style="color: #000000;"> id: foo </span><span style="color: #008080;">31</span> <span style="color: #000000;"># token: bar </span><span style="color: #008080;">32</span> # client-<span style="color: #000000;">id: foo </span><span style="color: #008080;">33</span> # client-<span style="color: #000000;">token: bar </span><span style="color: #008080;">34</span> <span style="color: #008080;">35</span> <span style="color: #000000;"># ports: </span><span style="color: #008080;">36</span> # - send: <span style="color: #800080;">50000</span> <span style="color: #008080;">37</span> # to: <span style="color: #800080;">5000</span> <span style="color: #008080;">38</span> # - send: <span style="color: #800080;">7777</span> <span style="color: #008080;">39</span> # to: <span style="color: #800080;">777</span> <span style="color: #008080;">40</span> # protocol: udp
编辑完后,在用户目录下创建Code文件夹,这个文件夹里面创建一个test文件夹。接着进行虚拟机ip地址与域名绑定。编辑文件C:\Windows\System32\drivers\etc 下的hosts 增加一行:192.168.10.10 test.app 。(可能要修改文件权限才能增加)
4.输入 ssh-keygen
显示:Enter file in which to save the key (/c/Users/pc/.ssh/id_rsa):
不管它直接 回车, 接着会让你输入密码,也是直接回车。
5.输入 vagrant up
6.输入 vagrant ssh
这时,你已经进入到虚拟机中了, 新建一个Code文件夹,进去Code再新建一个test文件夹。
ok,homestead开发环境已经搭配好了
输入 exit 退出虚拟机 输入 vagrant halt 关闭虚拟机 输入 vagrant 查看常用命令
是是