PHP急速入門一·開發環境配置

千里之行始于足下,但很多對編程報以興趣的初學者卡在剛開始的環境配置就失去興趣了。這很可惜,因為編程并沒有你想象那樣難。本教程帶你繞過環境配置的溝溝坎坎,不出一個小時就能搞定環境配置,讓你的才華不會被埋沒。
為什么能辣么方便?因為本教程思路是幫你安裝一臺虛擬機,這臺虛擬機什么都有,你虛擬裝好了其他一切就裝好了。
最后,我們還有?視頻教程

工具包下載地址:這里

包內有以下幾個工具(針對Windows)

  • Cygwin64 :Windos 下的Linux環境模擬器
  • VirtualBox:虛擬機
  • Vagrant: 虛擬機管理工具
  • Homestead.box:Laravel官方針對PHP開發配置的ubuntu虛擬機鏡像,預裝了php5.6, Nignx,Node,redis等等。
  • Homestead.zip: Laravel官方定制的Vagrant配置文件

Laravel是什么鬼?Laravel是目前最流行的PHP框架。下圖最長的那個就是Laravel:


PHP Framework Popularity at Works

框架又是什么鬼?框架可以理解為網站的雛形。為了方便開發,大牛們把做網站需要的核心代碼都幫你寫好了,文件怎么放置也幫你規劃好了,安全性問題也幫你考慮了。按照大牛給的套路,你可以很輕松的做出一個較為復雜的網站,也方便團隊日后的維護。

我們開始進入正題

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.boxHomestead.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



點擊確定就可以連上了。

Paste_Image.png

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容

  • 話說作為laravel的開發者,你聽說Homestead應該很久了,可是官方推薦的開發環境在國內為什么鮮有人用?我...
    學著放下閱讀 48,075評論 48 76
  • 周末往家打電話,有一搭沒一搭的聊著。 突然老媽沒來由的說盧老師很關心你呢,問你現在哪里工作,成家沒? 讓我好汗顏!...
    Rachel09閱讀 222評論 0 0
  • 2017.09.27 川川學校從這周期起開設了課外班,和他商量后,他要報國際象棋,后來學校要求二年級才能報,我們就...
    川川故事集閱讀 359評論 0 0