Linux系統(tǒng)下安裝跨平臺團(tuán)隊開發(fā)工具Vagrant的教程

Vagrant 是一個可創(chuàng)建輕量級、高復(fù)用性和便于移植的開發(fā)環(huán)境的工具。
在非專業(yè)人士眼里,這意味著Vagrant拋棄開發(fā)環(huán)境中所有讓人頭痛的設(shè)置代之為了一個單一的配置文件,你可以選擇你的服務(wù)器所需要的特性予以保留。你將不會再被XAMMP,手動配置虛擬環(huán)境,或者使用FTP遠(yuǎn)程編輯所卡住。
Vagrant 是一個強(qiáng)有力的工具,它的功能和價值超出這篇文章所覆蓋的范圍以及我的理解所能到達(dá)之處。這篇文章將介紹Vagrant中一些相當(dāng)酷的事情,比如:
在你的機(jī)器中使用PHP5.4版本的LAMP。
如何在你的虛擬機(jī)中便捷訪問數(shù)據(jù)庫。
如何自動更新你的hostfile,使用URL引用虛擬服務(wù)器(developing on http://localhost:8080 versus http://myprojectname.local)。
一些必要的Vagrant命令。
最好和最有用的Vagrant插件。
鏈接到更多資源和預(yù)建的Vagrant書庫。
想象一下,你正在和據(jù)說15人的團(tuán)隊開發(fā)一個應(yīng)用程序。這個程序真是狂棒!它使用Laravel的PHP框架,Redis和Memcached,ImageMagick和GD的PHP模塊,curl,MySQL和PostgreSQL, 甚至MongoDB。 另外,Laravel明確依賴PHP版本5.3.7或更高版本,以及mcrypt的PHP擴(kuò)展。
理想情況下,你會希望團(tuán)隊所有的15人在開發(fā)這個應(yīng)用程序時,都是相同的開發(fā)環(huán)境。 但是不是所有的開發(fā)團(tuán)隊,都有系統(tǒng)管理的專家或者培養(yǎng)一個系統(tǒng)管理。獲得相同設(shè)置的開發(fā)環(huán)境可能是一個非常艱巨的任務(wù)。 最重要的是,有些人使用的是Mac,而其他人則使用Linux或Windows。在它之前,開發(fā)人員會糾結(jié)在無盡的配置中,用電腦扔墻而筋疲力盡。
Vagrant將會替你管理好環(huán)境設(shè)置的種種,讓你將精力用在業(yè)務(wù)代碼的開發(fā).
再來看一個場景,項目開發(fā)了一大半了發(fā)現(xiàn)需要安裝Beanstalkd以便處理隊列問題. 通常情況下,大家會停下來重新配置環(huán)境并期望 Bean stalkd能正常運行. 有了Vagrant, 只需要將更新文件推送到配置文件上即可, 所有人只需要刷新 Vagrant就行了.太棒了!接下來大家就能使用隊列功能了. 這跟操作系統(tǒng)更沒什么關(guān)系,不管是 Windows, Linux, 或是Mac,因為大家的操作環(huán)境都是一樣的.
安裝步驟
1. 安裝 VirtualBox
虛擬機(jī)還是得依靠 VirtualBox 來搭建,免費小巧。
下載地址:https://www.virtualbox.org/wiki/Downloads
* 雖然 Vagrant 也支持 VMware,不過 VMware 是收費的,對應(yīng)的 Vagrant 版本也是收費的
2. 安裝 Vagrant
下載地址:http://downloads.vagrantup.com/ 根據(jù)提示一步步安裝。
此外,還得下載官方封裝好的基礎(chǔ)鏡像:
Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box
如果你要其他系統(tǒng)的鏡像,可以來這里下載:http://www.vagrantbox.es/
* 鑒于國內(nèi)網(wǎng)速,我們將下載鏡像的步驟單獨剝離出來了
3. 添加鏡像到 Vagrant
假設(shè)我們下載的鏡像存放路徑是 ~/box/precise64.box,在終端里輸入:
$ vagrant box add hahaha ~/box/precise64.box
hahaha 是我們給這個 box 命的名字,~/box/precise64.box 是 box 所在路徑
4. 初始化開發(fā)環(huán)境
創(chuàng)建一個開發(fā)目錄(比如:~/dev),你也可以使用已有的目錄,切換到開發(fā)目錄里,用 hahaha 鏡像初始化當(dāng)前目錄的環(huán)境:
$ cd ~/dev # 切換目錄
$ vagrant init hahaha # 初始化
$ vagrant up # 啟動環(huán)境
你會看到終端顯示了啟動過程,啟動完成后,我們就可以用 SSH 登錄虛擬機(jī)了,剩下的步驟就是在虛擬機(jī)里配置你要運行的各種環(huán)境和參數(shù)了。
$ vagrant ssh # SSH 登錄
$ cd /vagrant # 切換到開發(fā)目錄,也就是宿主機(jī)上的 `~/dev`
~/dev 目錄對應(yīng)虛擬機(jī)中的目錄是 /vagrant
Windows 用戶注意:Windows 終端并不支持 ssh,所以需要安裝第三方 SSH 客戶端,比如:Putty、Cygwin 等。
5. 其他設(shè)置
Vagrant 初始化成功后,會在初始化的目錄里生成一個 Vagrantfile 的配置文件,可以修改配置文件進(jìn)行個性化的定制。
Vagrant 默認(rèn)是使用端口映射方式將虛擬機(jī)的端口映射本地從而實現(xiàn)類似 http://localhost:80 這種訪問方式,這種方式比較麻煩,新開和修改端口的時候都得編輯。相比較而言,host-only 模式顯得方便多了。打開 Vagrantfile,將下面這行的注釋去掉(移除 #)并保存:
config.vm.network :private_network, ip: "192.168.33.10"
重啟虛擬機(jī),這樣我們就能用 192.168.33.10 訪問這臺機(jī)器了,你可以把 IP 改成其他地址,只要不產(chǎn)生沖突就行。
6. 打包分發(fā)
當(dāng)你配置好開發(fā)環(huán)境后,退出并關(guān)閉虛擬機(jī)。在終端里對開發(fā)環(huán)境進(jìn)行打包:
$ vagrant package
打包完成后會在當(dāng)前目錄生成一個 package.box 的文件,將這個文件傳給其他用戶,其他用戶只要添加這個 box 并用其初始化自己的開發(fā)目錄就能得到一個一模一樣的開發(fā)環(huán)境了。
7. 常用命令
$ vagrant init # 初始化
$ vagrant up # 啟動虛擬機(jī)
$ vagrant halt # 關(guān)閉虛擬機(jī)
$ vagrant reload # 重啟虛擬機(jī)
$ vagrant ssh # SSH 至虛擬機(jī)
$ vagrant status # 查看虛擬機(jī)運行狀態(tài)
$ vagrant destroy # 銷毀當(dāng)前虛擬機(jī)
更多內(nèi)容請查閱官方文檔 http://docs.vagrantup.com/v2/cli/index.html
8. 注意事項
使用 Apache/Nginx 時會出現(xiàn)諸如圖片修改后但頁面刷新仍然是舊文件的情況,是由于靜態(tài)文件緩存造成的。需要對虛擬機(jī)里的 Apache/Nginx 配置文件進(jìn)行修改:
# Apache 配置添加:
EnableSendfile off
# Nginx 配置添加:
sendfile off;
SegmentFault 團(tuán)隊就是用這種方式統(tǒng)一開發(fā)環(huán)境的
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細(xì)信息? 3招輕松查看CPU型號、核心數(shù)和溫度
在日常運維工作中,獲取 CPU 信息是系統(tǒng)運維管理員常見的工作內(nèi)容,無論是為了性能調(diào)優(yōu)、硬件升級還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡化,優(yōu)化,現(xiàn)代化,實用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來簡要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機(jī)U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個win11裝機(jī)u盤,詳細(xì)如下2025-02-17Rsnapshot怎么用? 基于Rsync的強(qiáng)大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠(yuǎn)程文件,接下來詳細(xì)介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時、每天、每周和每月的本地備份,以及如何進(jìn)2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡化內(nèi)核搶占邏輯,通過減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運行時表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預(yù)覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來了諸多優(yōu)化和改進(jìn),進(jìn)一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來看看詳細(xì)安裝指南2025-01-16