千里之行始于足下,但很多對編程報以興趣的初學者卡在剛開始的環境配置就失去興趣了。這很可惜,因為編程并沒有你想象那樣難。本教程帶你繞過環境配置的溝溝坎坎,不出一個小時就能搞定環境配置,讓你的才華不會被埋沒。
為什么能辣么方便?因為本教程思路是幫你安裝一臺虛擬機,這臺虛擬機什么都有,你虛擬裝好了其他一切就裝好了。
最后,我們還有?視頻教程
工具包下載地址:這里
包內有以下幾個工具(針對Windows)
- Cygwin64 :Windos 下的Linux環境模擬器
- VirtualBox:虛擬機
- Vagrant: 虛擬機管理工具
- Homestead.box:Laravel官方針對PHP開發配置的ubuntu虛擬機鏡像,預裝了php5.6, Nignx,Node,redis等等。
- Homestead.zip: Laravel官方定制的Vagrant配置文件
Laravel是什么鬼?Laravel是目前最流行的PHP框架。下圖最長的那個就是Laravel:
框架又是什么鬼?框架可以理解為網站的雛形。為了方便開發,大牛們把做網站需要的核心代碼都幫你寫好了,文件怎么放置也幫你規劃好了,安全性問題也幫你考慮了。按照大牛給的套路,你可以很輕松的做出一個較為復雜的網站,也方便團隊日后的維護。
我們開始進入正題
1.Windows 模擬Linux環境:
這樣做是為了統一開發體驗,因為Windos下執行的是DOS命令,但對于習慣于Mac和Linux開發的童鞋來說有點不順手。做開發的應該對自己好一點。
雙擊Setup-x86_64.exe 開始安裝,在安裝的過程中可以選著國內的鏡像源http://mirror.163.com
記得安裝插件ssh
,這樣在模擬的Linux環境中就可以執行ssh
命令了。
Cygwin默認在C盤cygwin64
在這個文件中模擬了一個Linux環境,這個文件夾就是你Linux的根目錄。
2.SSH創建密鑰?
SSH雖然不能吃,但你可以用SSH登陸遠程服務器。我們將用它來登陸虛擬機SSH。因此你需要先創建一對密鑰,執行命令
ssh-keygen -t rsa -C "you@homestead"
過程中會問你一些問題,不用管它一路回車就好了。
然后在你的家里可以看到多了個.ssh的文件夾里面,里面裝了你的私鑰id_rsa和公鑰id_rsa.pub兩個文件。
私鑰是自己保管的,公鑰是給“別人”的。打個不完全恰當的比方,私鑰像門鎖,公鑰就像鑰匙。門鎖只有一個,是裝在自家大門上的,我們也不會把它別人,但我們可以配好多把鑰匙交給我們信任的家人。于此類似,我們會把公鑰交給我們信任的遠程服務器。當我們在鏈接服務器的時候,服務器會先拿著我們預先給他的公鑰與我們自己保管私鑰做匹配,如果私鑰和公鑰匹配上了就可以證明這個人確實是我。
拓展:關于ssh其他用法可以看這篇文章
2.Vagrant 安裝
安裝Vagrant之前,需要先裝VirtualBox虛擬機,一路下一步就是了。
裝好后,我們可以裝Vagrant了。
裝好會重啟,重啟完畢后我們再到Cygwin中執行命令
vagrant
看看有什么反應:
對,有很強烈的反應。這說明安裝成功了!
接下來我們需要添加鏡像文件,我們將下載好的
homestead_0.2.0.box
和Homestead.zip
放到我的"家中"(c:/cygwin64/home/xiongyongxin/)解壓Homestead.zip到Homestead文件夾中。回到命令窗口,執行這面這段命令:
vagrant box add laravel/homestead ./homestead_0.2.0.box
注意:./homestead_0.2.0.box
這段要根據放置文件地址來定。
速度很快,一會就好。
現在我們進入到剛解壓好的Homestead文件夾中:
cd Homestead
執行命令,看看反應
vagrant up
結果報錯了,沒關系,我們需要去配置一下Homestead.yaml
。用編輯器打開它:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Sites/plantbabe.com/Code
to: /home/vagrant/Code
sites:
- map: plantbabe.cc
to: /home/vagrant/Code/v0.plantbabe.com/public
hhvm: true
sites:
- map: xiye.cc
to: /home/vagrant/Code/xiye.plantbabe.com/public
variables:
- key: APP_ENV
value: local
authorize指定了我們公鑰的地址,當啟動虛擬機的時候,這臺虛擬機就獲得了我們的公鑰。
folders 指定了文件夾的映射關系,我們先去自己的家里創建一個Code文件夾,用來與Vagrant家中的Code文件夾實現共享。把上面的源文件的代碼改為:
folders:
- map: ~/Code
to: /home/vagrant/Code
map對應的是本地的真實地址,to對應的是虛擬機中的地址。
sites指定了站點的映射關系,就是我們在主機訪問域名的時候,服務器會先執行那個目錄的文件。因為Laravel把網站的入口文件放置在public下面,我們因此在站點指定到public
下面:
sites:
- map: yiban.cc
to: /home/vagrant/Code/yiban.cc/public
hhvm: true
vagrant 支持多站點的配置,我們現在只有一個站點,所以另外一個可以刪除掉。和上面類似,map對應的是瀏覽器的訪問域名;to對應虛擬機中的地址。如果需要開啟hhvm,設置為true,在開發環境里面hhvm沒有什么用。如果要配置多站點的話請把這行去掉。
最后這個文件變成這樣了。
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: yiban.cc
to: /home/vagrant/Code/yiban.cc/public
variables:
- key: APP_ENV
value: local
修改好后,我們在該目錄下再次執行:
vagrant up
看到一長串,說明啟動成功了。
不信?那么我們可以到Virtual Box看看,一臺虛擬機正在跑。
進入虛擬機內部:
vagrant ssh
如果你的ssh生成的密鑰地址正確的話,很快就能進去。
3.鏈接數據庫:
鏈接數據庫windows 上可以用navicat。在Mac上面可以用Sequel pro。
主機域名用localhost,端口:33060,用戶名:homestead,密碼:secret
點擊確定就可以連上了。
4.創建Laravel項目
現在我們可以開始創建一個項目:
去這里下載Laravel一件安裝包。解壓后將代碼復制到Code下面的yiban.cc文件夾中,如圖:
在瀏覽器地址欄上輸入
192.168.10.10
,我們就可以看到頁面有東西出來了。
這個ip地址來自之前我們配置的Homestead.yaml 文件。但這樣不夠優雅,也可能會帶來一些其他問題。比如一臺服務器上配置多個站點域名,用同一個IP就會出錯了。因此,我需要在本地綁定一下hosts,打開C盤,編輯文件Windows/System32/drivers/etc/hosts
添加上
192.168.10.10 yiban.cc
保存好后,重啟瀏覽器,用瀏覽器訪問yiban.cc
,于是剛剛那個頁面可以用域名訪問了。如果有問題,清理一下緩存再試一試。
Mac 系統在/etc/hosts
中,修改的話要管理操作權限。
hosts就好像一個存在電腦上電話號碼本,存了一些網站域名對應的IP。瀏覽器去訪問域名的時候,先會在本地的號碼本上查看是否有記錄,如果有的話就直接撥電話了(訪問該IP)了,所以當我們去訪問yiban.cc時候實際上訪問的192.168.10.10。
編輯并保存hosts文件后,我們重啟瀏覽器后訪問yiban.cc。不出意外的話,我們可以看到剛剛的那個網站。
配置多個站點
和上面一樣,我們只要再在Homestead.yaml添加一個sites的配置就就好了,
sites:
- map: xiye.cc
to: /home/vagrant/Code/xiye/public
然后執行
vagrant provision
這樣虛擬機就會載入新的配置。
結語
日常使用的時候,記住下面2個命令就好了:
- 開啟虛擬機:cd 到Homestead文件夾執行命令
休眠
vagrant suspend
重啟
vagrant resume
- 進入虛擬機:
vagrant ssh
鏈接數據庫用Navicat 等管理軟件直接連接就好了
瀏覽器訪問輸入綁定的域名:yiban.cc
是不是很簡單?什么,還是不懂?
看視頻吧!?視頻教程
參考資料
http://www.golaravel.com/laravel/docs/4.2/homestead/
http://segmentfault.com/a/1190000000264347