擁有一個(gè)虛擬化環(huán)境就像是在你當(dāng)前的操作系統(tǒng)里運(yùn)行著另外一個(gè)完整的系統(tǒng)一樣。沒(méi)錯(cuò),就像《黑客帝國(guó)》里所說(shuō)的那樣。
舉個(gè)例子,如果你正在一個(gè)Windows機(jī)器上,你還可以在它里面運(yùn)行一個(gè)Linux系統(tǒng)。然后你就能通過(guò)一個(gè)正常的窗口應(yīng)用“看到”這臺(tái)虛擬的電腦。
這個(gè)虛擬化環(huán)境然后就會(huì)像一個(gè)自主操作系統(tǒng)一樣精確地響應(yīng),除了你還需要從你的主操作系統(tǒng)啟動(dòng)它這點(diǎn)不自主是個(gè)例外。
虛擬化PHP編程的優(yōu)勢(shì)
通過(guò)使用XAMP或MAMP進(jìn)行PHP編程有很多便利之處:
1.它會(huì)在只有你需要時(shí)才調(diào)用系統(tǒng)資源(內(nèi)存等)。其他自動(dòng)啟動(dòng)的環(huán)境與WAMP或MAMP相比而言。
2.你可以有多個(gè)不同的環(huán)境,并且在需要時(shí)能隨時(shí)啟動(dòng)。比如,不同的PHP版本,不同的HTTP服務(wù)器(Apache或Nginx),不同的PHP配置,不同的擴(kuò)展等。
3.你可以放心大膽地做實(shí)驗(yàn),而不用擔(dān)心損壞主系統(tǒng)里的東西。
4.你可以分享你的虛擬機(jī)并且很容易就做出備份。如果你在一個(gè)有很多開(kāi)發(fā)者的公司里,你可以安裝你想要的開(kāi)發(fā)機(jī)器,然后你就能分享給其他的同事了。
5.你能更簡(jiǎn)單地?fù)碛幸粋€(gè)匹配你目標(biāo)生產(chǎn)服務(wù)器的虛擬機(jī)。使用Windows并且讓你托管PHP的服務(wù)器變成一個(gè)Linux盒子?這都不是事兒!
6.你的虛擬機(jī)不會(huì)干涉你的主操作系統(tǒng)。舉個(gè)例子,運(yùn)行Skype會(huì)阻止80端口,在不是虛擬機(jī)的電腦上運(yùn)行XAMPP就會(huì)出現(xiàn)問(wèn)題。
虛擬化開(kāi)發(fā)有什么弊端?
人無(wú)完人,同樣的,虛擬化環(huán)境也不是沒(méi)有弊端,你可能會(huì)遇到下面這些問(wèn)題:
1.可能會(huì)比你直接使用一個(gè)像XAMP或MAMP的PHP服務(wù)器運(yùn)行得要慢點(diǎn),尤其是當(dāng)你有臺(tái)比較“古董”的老機(jī)器時(shí)。
2.我演示的方法使用的是Linux系統(tǒng),所以你需要去熟悉下*nix的命令行。
3.要比只安裝WAMP或MAMP麻煩一點(diǎn)點(diǎn)(當(dāng)它第一次運(yùn)行的時(shí)候)。
但是,別急著離開(kāi)先!這些不便同時(shí)也正是便利之處,如果你是認(rèn)真的想學(xué)好PHP編程或Web開(kāi)發(fā)的話,原因如下:
1.你會(huì)學(xué)習(xí)Linux命令行,并且通常的生產(chǎn)服務(wù)器都是Linux盒子。
2.你會(huì)學(xué)到更多的應(yīng)該用安裝和設(shè)置知識(shí)。比如,怎么安裝和配置Apache,Nginx,MySQL等等。這對(duì)解決應(yīng)用中的問(wèn)題或最優(yōu)化應(yīng)用都很有幫助。
怎么使用虛擬化環(huán)境
我已經(jīng)在一個(gè)視頻里一步一步地闡明了,怎么使用PuPHPet,Vagrant和VirtualBox安裝PHP。
“哇!我要安裝3個(gè)應(yīng)用才能讓它工作起來(lái)啊!好像有些復(fù)雜呀!”
你的擔(dān)心是多余的,做起來(lái)真的比看起來(lái)簡(jiǎn)單太多了!我真誠(chéng)地推薦認(rèn)真的開(kāi)發(fā)者都勇敢的嘗試一下!如果第一次一切正常的話,最多花費(fèi)你20到30分鐘就能把一切搞定了!
哦,最棒的一件事是:所有這些程序和工具都是免費(fèi)的(PHP100表示用慣了盜版的國(guó)人是不會(huì)理解老外這種撿到寶兒的愉快心情的,當(dāng)然這里PHP100小編建議大家還是要尊重開(kāi)發(fā)者的勞動(dòng),尤其我們自己還是苦逼程序員的時(shí)候)!并且它們用起來(lái)真的棒!
總結(jié)
所以,如果你對(duì)PHP開(kāi)發(fā)和Web開(kāi)發(fā)持一個(gè)認(rèn)真嚴(yán)肅的態(tài)度,你真的應(yīng)該為你的PHP開(kāi)發(fā)服務(wù)器重點(diǎn)考慮下虛擬化環(huán)境了。
你可能仍偏向于使用XAMP或MAMP,但我想虛擬化環(huán)境應(yīng)該是每個(gè)Web開(kāi)發(fā)者的工具箱里都應(yīng)該有的東西,尤其是那些想發(fā)展成為專業(yè)Web開(kāi)發(fā)的人們。