MAMP Pro 與 Vagrant 以及 docker 的比較
因爲(wèi)筆者是使用 Macbook Pro,所以早期是使用 MAMP Pro 4 當(dāng)作 PHP 以及 mySQL 的開(kāi)發(fā)機(jī)秧秉,最近又因爲(wèi) PHP 的關(guān)係才升級(jí)到 5.x ,這時(shí)才有支援 7 以上罗岖,目前是支援 7.3.1
基本是用 PHP 7.2.14戴已,因爲(wèi) PHP 改成 7.3.1 之後,Laravel 似乎會(huì)容易造成 JIT 記憶體不足的問(wèn)題眠蚂,這個(gè)就不管它了私爷,能夠跑起來(lái)最重要就好了
所以基本的搭配是 PHP 7.2.14雾棺、MySQL 5.7.25,它要建立一個(gè)網(wǎng)站就單純的點(diǎn)一點(diǎn)衬浑,測(cè)試的網(wǎng)址給它就完成了捌浩,幾乎都沒(méi)有什麼好等待,不過(guò)因爲(wèi)是 Laravel 加 Voyager 所以還是要等他的下載
下面的圖案就是 MAMP Pro 5.x 的管理界面
先改用 Vagrant 容器
這是從 wiki 截取下來(lái)的一段話
Vagrant 是一款用於構(gòu)建及配置虛擬開(kāi)發(fā)環(huán)境的軟體工秩,基於Ruby,主要以命令行的方式運(yùn)行尸饺。
主要使用 Oracle 的開(kāi)源 VirtualBox 虛擬化系統(tǒng),與 Chef拓诸,Salt侵佃,Puppet 等環(huán)境配置管理軟體搭配使用, 可以實(shí)行快速虛擬開(kāi)發(fā)環(huán)境的構(gòu)建奠支。
從這裏不難看出它是用來(lái)做什麼的馋辈,直接告訴你它是利用虛擬機(jī)來(lái)打造一個(gè)屬於自己的開(kāi)發(fā)機(jī),它與虛擬機(jī)的差異在於下指令就可以完成倍谜,不用靠使用者界面去完成它
一開(kāi)始對(duì)於它是有興趣迈螟,不外乎是下下指令就可以達(dá)成你想要的容器了,甚至你的容器是可以上傳到它的網(wǎng)站尔崔,供其它人去使用
使用它還有一個(gè)原因答毫,可以做到負(fù)載平衡,不過(guò)因爲(wèi)要負(fù)載平衡的案子幾乎沒(méi)有季春,而且它主要是透過(guò)虛擬機(jī)洗搂,所以都要時(shí)間等他 up,所以也沒(méi)有就會(huì)用到它载弄,所以就沒(méi)有機(jī)會(huì)去用到它了
後來(lái)又改爲(wèi) docker 容器
docker wiki 有一段話
Docker 是一個(gè)開(kāi)放原始碼軟體專案耘拇,讓?xiě)?yīng)用程式部署在軟體貨櫃下的工作可以自動(dòng)化進(jìn)行,藉此在 Linux 作業(yè)系統(tǒng)上宇攻,提供一個(gè)額外的軟體抽象層惫叛,以及作業(yè)系統(tǒng)層虛擬化的自動(dòng)管理機(jī)制。
Docker 利用Linux核心中的資源分離機(jī)制逞刷,例如cgroups嘉涌,以及Linux 核心命名空間(namespaces)妻熊,來(lái)建立獨(dú)立的容器(containers)。這可以在單一 Linux 實(shí)體下運(yùn)作仑最,避免啟動(dòng)一個(gè)虛擬機(jī)器造成的額外負(fù)擔(dān)[2]扔役。Linux 核心對(duì)命名空間的支援完全隔離了工作環(huán)境中應(yīng)用程式的視野,包括行程樹(shù)警医、網(wǎng)路厅目、用戶 ID 與掛載檔案系統(tǒng),而核心的 cgroup 提供資源隔離法严,包括CPU、記憶體葫笼、block I/O與網(wǎng)路深啤。從 0.9 版本起,Dockers 在使用抽象虛擬是經(jīng)由 libvirt 的 LXC 與 systemd - nspawn 提供介面的基礎(chǔ)上路星,開(kāi)始包括libcontainer 函式庫(kù)做為以自己的方式開(kāi)始直接使用由 Linux 核心提供的虛擬化的設(shè)施溯街,
說(shuō)的白話一點(diǎn),就是它只有底層在跑洋丐,之後有個(gè) docker-composer 可以讓 docker 跑得更加容易呈昔,譬如加入一個(gè) web 就寫(xiě)一段程式就可以跑起來(lái),加入 db 就要給它一個(gè) db 的宣告就可以了友绝,這些統(tǒng)統(tǒng)可以在? docker-composer 裏面可以實(shí)現(xiàn)堤尾,不用管他怎麼跑的,只要透過(guò) docker 以及 docker-composer 就可以了
不過(guò)有個(gè)問(wèn)題來(lái)了迁客,就是它的效能在 Macbook Pro 底下郭宝,實(shí)在是非常慢,當(dāng)我跑起來(lái)的時(shí)候掷漱,大概要等 10~20 秒之後才會(huì)出現(xiàn)我的測(cè)試網(wǎng)頁(yè)粘室,然後每一次切換頁(yè)面要等待的時(shí)間,每一次 down 然後 up 的狀況都是這樣
這就讓我覺(jué)得奇怪卜范,google 了一下衔统,得到的回應(yīng)是作業(yè)系統(tǒng)的關(guān)係,變成要靠虛擬機(jī)海雪?問(wèn)題是就不要用虛擬機(jī)才用 docker锦爵,結(jié)果是因爲(wèi) OS 的不同而要用虛擬機(jī),這不是反過(guò)來(lái)用 vagrant 就好了喳魏?
所以放棄容器的概念棉浸,而又轉(zhuǎn)回 MAMP Pro
所以如果是 Mac 在開(kāi)發(fā)一個(gè)網(wǎng)站,直接用 MAMP Pro 可能比較快刺彩,而且又可以上傳到 github or gitlab
這裏或許不是每個(gè) Mac 都會(huì)遇到迷郑,至少我遇到過(guò)枝恋,所以我不想用虛擬機(jī),而且 docker 讓我用的很難過(guò)嗡害,所以直接放棄
MAMP Pro 是開(kāi)發(fā)網(wǎng)站的好幫手胺俾怠!