在團隊開發中,每個人都有自己擅長的整合環境,例如WAMP、AppServ、XAMPP,正是因為這些環境不統一,完成任務提交程式碼後,每當測試出BUG的時候,都會有「程式碼在我機子上運行沒有問題」 的說辭。那麼問題來了,如何解決這個問題?
如何統一開發環境?
Vagrant 是一款用來建構虛擬開發環境的工具,我們可以透過 Vagrant 封裝一個 Linux 的開發環境,分發給團隊成員。成員可以在自己喜歡的桌面系統(Mac/Windows/Linux)上開發程序,但程式碼卻能統一在封裝好的環境裡運行,非常霸氣,使用很酷。
Vagrant 的好夥伴
VirtualBox :號稱是最強的免費虛擬機器軟體和VM類似。
不僅具有豐富的特色,性能也很優異。
如何安裝?
1. 安裝VirtualBox:
網址:https://www.virtualbox.org/wiki/Downloads
2. 安裝Vagrant:
網址:http://downloads.vagrantup.com/
3. 下載系統鏡像:
網址:http://www.vagrantbox.es/
依序,一個個安裝即可~
具體操作
1. 加入鏡像到Vagrant:
鏡像的存放位置為/home/box/centos65.box
cd/home/box/
vagrant box add centosbox centos65.box
2. 初始化開發環境:
vagrant init centosbox #初始化
vagrant up #啟動環境
3. SSH登陸:
利用Xshell、Putty、SecureCRT等登入。
Ip : 127.0.0.1
Port : 2222
Username : root
Password : vagrant
常用配置
Vagrant初始化成功後,會在初始化的目錄中產生Vagrantfile文件,可以修改該文件進行個人化的自訂。
1. 配置IP:
config.vm.network :private_network, ip: “192.168.33.10”[去掉#]
你可以把IP改成其他位址,只要不產生衝突就好。
2. 配置同步目錄:
config.vm.synced_folder “../data”, “/vagrant_data” [去掉#,修改為下面]
config.vm.synced_folder “/home/web/www”, “/data/www“
/home/web/www:本地目錄
/data/www: Linux伺服器目錄
3. 配置虛擬記憶體:
在文件結尾end字符前加上下面一段:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
小提醒:修改配置後 記得 重新啟動虛擬機器。
打包分送
當你配置好開發環境後,退出並關閉虛擬機器。
在終端機裡對開發環境進行打包:
vagrant package
打包完成後會在目前目錄產生一個package.box的文件,
將這份文件傳給其他用戶,
其他用戶只要加入這個box並用其初始化自己的開發目錄,
就能得到一個一模一樣的開發環境了。
常用指令
vagrant init #初始化
vagrant up #啟動虛擬機器
vagrant halt #關閉虛擬機器
vagrant reload #重啟虛擬機器
vagrant status #查看虛擬機器運作狀態
更多【乾貨分享】,請關注PHP工程師訂閱號。