最近玩了一下Laravel Homestead,發(fā)現(xiàn)不少朋友在安裝使用的過程都或多或少遇到一些個(gè)坑。把這過程和我遇到的坑做一個(gè)記錄。希望對(duì)大家有幫助;
我的安裝環(huán)境是:win10 x64 home版
配合使用cmder完整版
安裝最新的 Laravel/homestead (當(dāng)前應(yīng)該是3.0.0)
安裝的過程
總的過程和Laravel5.5的官方文檔一樣:
1、安裝最新版的VirtualBox(我是x64的,所以下x64版本):virtualbox下載
Win10下安裝VirtualBox完全沒有難度,只有一個(gè)地方需要注意,就是否讓Virtualbox關(guān)聯(lián)相關(guān)文件,默認(rèn)是選中的,可以不用選,不然可能會(huì)影響win10下雙擊打開.vhd文件。如果你沒有用過.vhd文件,可以不管,全默認(rèn)安裝下去即可。
2、安裝Vagrant 最新版(當(dāng)前是2.0最新):Vagrantup下載
安裝Vagrant一樣沒有難度,默認(rèn)安裝,裝完最后重啟一下,點(diǎn)確認(rèn)重啟前請(qǐng)一定先保存當(dāng)前電腦沒保存的工作。
3、通過Vagrant 下載Laravel/Homestead的box鏡像 ( 第一個(gè)坑 )
官方文檔的命令是,win10也是直接在cmd窗口輸入:vagrant box add laravel/homestead
按官網(wǎng)以咱大局域網(wǎng)的速度,15個(gè)小時(shí)下不完,保不準(zhǔn)中間還會(huì)斷,建議還是用下載工具直接把包下到本地吧。下載地址:vagrant homestead virtualbox 版 3.0
這個(gè)下載地址是在執(zhí)行:vagrant box add laravel/homestead 后選擇這個(gè)命令時(shí)揭示的4、在下載這個(gè)包后,可以再win10的cmd 窗口:怎么得到box的下載地址?
vagrant box add laravel/homestead d:/virtualbox.box
注意這個(gè)d:/virtualbox.box的對(duì)應(yīng)實(shí)際路徑,無意外的話就很順利的安裝完成,在cmd窗口輸入:
vargrant? box list
可以看到:laravel/homestead (virtualbox, 0),說明成功了。先別開心,才成功了一步。5、開始下載安裝homestead(第二個(gè)坑)
首先,homestead這個(gè)目錄可以自己決定放哪,比如我放在D:\VirtualBox\Homestead
在CMD中進(jìn)到D:\VirtualBox就可以了,不要再建Homestead目錄,DOS命令如下:
d:
cd D:\VirtualBox
git clone https://github.com/laravel/homestead.git Homestead
執(zhí)行成功就會(huì)看到:Homestead目錄被自動(dòng)創(chuàng)建了,文件都下好了。然后繼續(xù)在這個(gè)目錄下dos:
init.bat?
完成初始化,這個(gè)坑點(diǎn)在于:homestead目錄可以自己定,而且還要要先安裝git工具,不然執(zhí)行不了。其實(shí),不裝也git可以,直接去下載包來解壓到這目錄也行
配置 Homestead
1、配置共享文件夾
用文本編輯器打開D:\VirtualBox\Homestead下的: Homestead.yaml yy (如果沒有,說明你沒有成功執(zhí)行init.bat)
找到里邊的:
folders:
-map:~/Code
to:/home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/code
改成:
folders:
- map: D:/web/Laravel
to: /home/laravel
type: "nfs"
sites:
- map: homestead.app
to: /home/laravel/public
注意前面的空格,簡(jiǎn)書的編輯器過濾了。原文件中前面是有空格的,不能多不能少。按他原來的空格數(shù)。我已經(jīng)事先把Laravel5.5下載解壓到了我的D:/web/Laravel目錄下,這段的意思是把D:/web/Laravel虛擬成linux目錄/home/laravel,然后在Nginx中創(chuàng)建虛擬主機(jī),綁定域名為homestead.app,綁定到目錄是linux的/home/laravel/public ,其實(shí)也就是我本地電腦的D:/web/Laravel/public目錄。
關(guān)于為什么要用NFS方式?
參考:讓Vagrant在Windwos下支持使用NFS/SMB共享文件夾從而解決目錄共享IO緩慢的問題
(第三個(gè)坑),Vagrant官方文檔說win下不支持nfs共享,但我試了,可以通過安裝vagrant-winnfsd這個(gè)插件來實(shí)現(xiàn),CMD窗口輸入執(zhí)行:
vagrant plugin install vagrant-winnfsd
會(huì)自動(dòng)安裝好所需的插件
(第四個(gè)坑),Vargent配置中的IP,在Homestead.yaml下,默認(rèn)是
ip: "192.168.30.10"
這個(gè)ip要改成跟當(dāng)前主機(jī)不同個(gè)ip段的,不然可能啟動(dòng)不了。
(第五個(gè)坑),配置完好可可以啟動(dòng)了,在DOS窗口:
d:
cd D:\VirtualBox|Homestead
vagrant up
如果成功,基本就沒問題了,如果不成,你可能會(huì)遇到:
1、提示你沒有ssh key
提示代碼忘記抓了,大概意思就是沒有私有key,要重新生成一下:
ssh-keygen -t rsa -C"your_email@example.com"
如果執(zhí)行不了,建議下載cmder完整版,里邊集成了git工具
參考:http://blog.csdn.net/u014702999/article/details/52779319
2、提示你laravel/homestead還沒有安裝,又重新給你下載:
大概的提示是:
default:Box'laravel/homestead'could notbefound. Attemptingtofindandinstall...
這個(gè)問題太奇怪了,也有解決辦法
文件編輯器打開 Homestead/scripts/homestead.rb
config.vm.box_version = settings["version"] ||= ">= 3.0.0"
改為
config.vm.box_version = settings["version"] ||= ">= 0"
保存,就能解決這個(gè)問題了
到這,基本我遇到 的坑都解決了。

可以通過瀏覽器中輸入虛擬機(jī)的IP來訪問到Laravel了。

