一、資源準備
連結:http://pan.baidu.com/s/1mh7qUBe 密碼:p4wx
1. virtualbox.box檔案放在C盤根目錄上。
2. metadata.json檔案放在C盤使用者目錄上。例如我的是 C:Userspc
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">/<span class="token punctuation">/github</span>.com</span>/laravel</span>/home. </span></span></span></span></span>
3. 輸入 bash init.shbash init.sh
這時你的用戶目錄下會多了一個 .homestead 文件夾,裡面有一個 Homestead.yaml 文件,這是homestead配置文件,我們日常開發中經常會用到的。現在對這個文件進行編輯<span class="token punctuation"></span>
<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:WindowsSystem32driversetc 下的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 查看常用指令
是是