1. 程式人生 > >使用vagrant+VirtualBox+box檔案共享php web開發環境(windows)

使用vagrant+VirtualBox+box檔案共享php web開發環境(windows)

多人開發是目前團隊中很普遍的現象。如果公用一個開發環境,難免會出現程式碼相互覆蓋的問題。不敢盲目的auto_upload,遇到問題排查至少花費10min+…
介於這個問題,使用統一的、便捷的開發環境迫在眉睫。這裡介紹一種方法:vagrant+VirtualBox+box檔案共享。

軟體介紹

VirtualBox:免費的虛擬機器軟體,無需多說。
vagrant:Vagrant是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。它使用Oracle的開源VirtualBox虛擬化系統,使用 Chef建立自動化虛擬環境。
box檔案:使用vagrant打包的系統景象檔案。

軟體版本

VirtualBox:VirtualBox-5.0.0-101573-Win(如需使用共享資料夾等擴充套件功能,請安裝vbox版本對應的Extension Pack)
vagrant:vagrant_1.7.4
OS:CentOS-minimal

軟體安裝

VirtualBox:正常安裝(如需使用共享資料夾等擴充套件功能,請安裝vbox版本對應的Extension Pack)
vagrant:正常安裝
**OS:在VirtualBox中安裝
**box檔案:將VirtualBox中的centos打包後即可得到box檔案
以上兩步參考 搭建Vagrant+VBox+CentOS-7+共享資料夾的開發環境

使用box檔案搭建環境

推薦一個環境結構目錄:

-development        #開發環境
       |--box       #存放box檔案
       |--data      #共享資料夾
       |--vagrant   #vagrant執行目錄

這樣將box_name.box檔案放入box目錄,然後進入vagrant執行:

vagrant box add —name box_name ..\box\box_name.box
vagrant init box_name.box

如果成功,可以使用下面命令檢視box:

vagrant box list

init成功之後,需要修改一下Vagrantfile。這裡給出一個推薦的:

Vagrant.configure(2) do |config|
  config.vm.box = "ifly"
  #虛擬機器ip
  config.vm.network "private_network", ip: "192.168.12.31"
  #共享資料夾
  config.vm.synced_folder "../data", "/vagrant_data"
end

接下來就可以啟動虛擬機器了

vagrant up

這樣,環境就搭建起來了。


通過以上的步驟,共享開發環境的流程就跑起來了。剩下的只需要一個開發者打造一個統一的box檔案,在團隊內部分發,就可以達成一致環境。效率剛剛的。

這裡補充一下遇到的坑:
1. vb中的共享資料夾讀寫效能很差(可能是宿主or虛擬機器內部的1/100),還有一些bug(cnpm跑better-npm-run彙報錯),能不用盡量不用,可以考慮使用IDE的auto_upload;
2. 遇到【Failed to create the host-only adapter】試試重灌vb;

想起來再補充。
At last,致謝曾經的BB技術團隊。