手把手教你Homestead安装,并填坑!!
來源:http://www.jianshu.com/p/ae9d1261bbd8
話說作為laravel的開發者,你聽說Homestead應該很久了,可是官方推薦的開發環境在國內為什么鮮有人用?我這幾天試著安裝了一下,發現官方的安裝教程實在存在著太多的大坑,尤其讓剛剛入道的開發者望而卻步,在本文我試著手把手教大家填上這個坑,我在騰訊課堂上傳了視頻教程,歡迎報名學習。如果你覺得視頻過于羅嗦,直接參看本教程即可。
第一步 安裝必須的軟件
1.安裝vagrant,點此進入下載頁,vagrant屬于跨平臺應用,我的系統是win10。關于vagrant教程,可以自己看一下,百度一下遍地是。不看也沒關系,本文大概只用到其中的幾個命令。
2.安裝Virtualbox,當然你安裝Vmware或parallels(OX系統)也可以,但后面下載的box要注意對應,虛擬機對應的版本不同。
第二步 導入box
vagrant box add laravel/homestead
第一個坑:原本只要如上的命令即可,但由于國內眾所周知的網絡原因,我們不得不考慮先下載好你需要的box再來添加。
首先在hashicorp中找到合適的版本,再在鏈接后加上”版本號/providers/虛擬機類型.box”即可獲得下載鏈接.
如我們要下載最新的版本號為1.0.1的virtualbox版的box文件,鏈接即為:https://atlas.hashicorp.com/laravel/boxes/homestead/versions/1.0.1/providers/virtualbox.box
為此我還是提供了國內的鏈接(將會定期更新),方便大家。
鏈接:http://pan.baidu.com/s/1dEJdHj7 密碼:kzlc
不建議采用迅雷離線下載,據說會導致下載的文件損壞!
接下來我新建了一個文件夾名為homestead,然后我將下好的box重命名為homestead.box放入,然后在此文件夾內運行如下命令(這里是按照一些普通的教程來添加,這時候挖了一個坑,后面填上)。
vagrant box add laravel/homestead homestead.box
接著運行
vagrant box list
vagrant box list
發現這個box已經添加進來就ok了。
第三步 下載官方homestead配置
可以進入laravel5.3的官方文檔
按照文檔的說明首先運行(必須本地已經安裝了git)
git clone https://github.com/laravel/homestead.git Homestead
接著在已經克隆下來的文件夾內,會發現bash init.sh,init.bat兩個文件,這兩個分別是將該目錄內的Homestead.yaml文件拷貝到你的系統“家”目錄下。如果是在win下,又安裝了git bash,則運行bash init.sh,init.bat均可。如果是在linux下,則運行bash init.sh。
接著我們就在家目錄.homestead文件夾下找到了我們的這個配置文件
第四步 配置Homestead.yaml
設置 IP及Provider
Homestead.yaml文件中的provider鍵表示使用哪個 Vagrant 提供者:virtualbox、vmware_fushion或者vmware_workstation,你可以將其設置為自己喜歡的提供者:
ip: "192.168.10.10"
provider: virtualbox
配置共享文件夾
Homestead.yaml文件中的folders屬性列出了所有主機和 Homestead 虛擬機共享的文件夾,一旦這些目錄中的文件有了修改,將會在本地和 Homestead 虛擬機之間保持同步,如果有需要的話,你可以配置多個共享文件夾(一般一個就夠了):
folders:
- map: D:/homestead/code ?#(這是我本地的文件夾)
to: /home/vagrant/Code
配置 Nginx 站點
對 Nginx 不熟?沒問題,通過sites屬性你可以方便地將“域名”映射到 Homestead 虛擬機的指定目錄,Homestead.yaml中默認已經配置了一個示例站點。和共享文件夾一樣,你可以配置多個站點:
sites:
- map: liang.app
to: /home/vagrant/Code/Laravel/public
Hosts文件
不要忘記把 Nginx 站點配置中的域名添加到本地機器上的hosts文件中,該文件會將對本地域名的請求重定向到 Homestead 虛擬機,在 Mac 或 Linux上,該文件位于/etc/hosts,在 Windows 上,位于C:\Windows\System32\drivers\etc\hosts,添加方式如下:
192.168.10.10 liang.app
確保 IP 地址和你的Homestead.yaml文件中列出的一致,一旦你將域名放置到hosts文件,就可以在瀏覽器中通過該域名訪問站點了:
http://liang.app
第五步 啟動vagrant
在 Homestead 目錄下運行vagrant up命令,Vagrant 將會啟動虛擬機并自動配置共享文件夾以及 Nginx 站點。官方文檔對此描述的如此這般簡單,其實這里遇到了第二個大坑
我們輸入vagrant up看會發生什么?一堆的錯誤提示!!!!
我們根據提示,貌似是ssh的key沒有生成,于是我們要運行如下命令,這個命令可以在git bash下生成,也可以在cmder等命令行工具完成,但在win下的cmd卻無法執行。win 下可考慮powershell。
ssh-keygen
好了,我們歡喜的以為,我們可以順利運行了。vagrant up。我擦居然提示這個box沒有,需要安裝。出現了第三個坑
再次出現該box不存在
導致該坑的原因,我們看之前的vagrant box list,里面顯示laravel/homestead (virtualbox, 0),而homestead要求Box Version: >= 1.0.0,這就不奇怪了。但我們明明下的是這個1.0.1版本啊。
vagrant box list
我們有兩種方式修復這個大坑
方式一
修改homestead/scripts/homestead.rb的這個文件,將其中的>= 1.0.0改為< 1.0.0即可滿足要求。但我并不推薦這種方式,因為實質對滿足要求進行了篡改。
homestead.rb
方式二
我們在homestead下新建一個名為homestead.json的一個json配置文件
{
"name": "laravel/homestead",
"versions": [{
"version": "1.0.1",
"providers": [{
"name": "virtualbox",
"url": "file://homestead.box"
}]
}]
}
看懂了嗎?接著我們運行這個命令
vagrant box add homestead.json
已經添box成功
真的不容易啊,添加成功了
我們接著運行vagrant up試試
成功運行
經過這樣一番折騰終于成功運行了。
第六步 登錄vagrant并安裝laravel
這一步應該是我們的最后一步了,我們期待目標通過本地能夠訪問到你用vagrant搭建起來的laravel。我們通過vagrant ssh命令即可順利登錄我們的系統了。
由于設置上我們的vagrant虛擬機Code目錄和我們的本地主機D:/homestead/Code是同一個目錄,因此,我們先移步到該目錄。
第四個坑出現了,我們一般是通過composer來進行安裝,但出于GFW原因,我們不得不用中國鏡像來安裝。vagrant虛擬機中運行如下命令
composer config -g repo.packagist composer https://packagist.phpcomposer.com
接著我們通過composer來安裝一個5.2版本
composer create-project laravel/laravel=5.2.* --prefer-dist
OK,訪問liang.app,出現了Laravel 5的歡迎界面,大功告成。
補坑:對于部分用戶,可能出現autoload或boostrap不存在,說明依賴安裝不完整,可以在laravel目錄下運行如下命令來解決。
composer update--no-scripts
版權聲明:本文版權歸作者所有,如要轉載,請給錢,歡迎私信、評論
歡迎打賞、打賞、打賞
總結
以上是生活随笔為你收集整理的手把手教你Homestead安装,并填坑!!的全部內容,希望文章能夠幫你解決所遇到的問題。