工欲善其事必先利其器,開(kāi)發(fā)環(huán)境 和 開(kāi)發(fā)工具 就是 我們開(kāi)發(fā)人員的劍徽级,所以我們需要一個(gè)快并且好用的劍
剛開(kāi)始做開(kāi)發(fā)的時(shí)候的都是把開(kāi)發(fā)環(huán)境 配置在 自己的電腦上攻臀,隨著后面我們接觸的東西越來(lái)越多畜吊,慢慢的電腦上都是各種環(huán)境了步清,php,java榜晦,python冠蒋,nodejs等等,非常麻煩乾胶,并且經(jīng)常由于某種原因就把電腦重裝了抖剿,ORZ,所以環(huán)境都要重來(lái)识窿。所以打造一個(gè)屬于自己并且可以移動(dòng)的環(huán)境是非常重要的斩郎。
vagrant就是一款構(gòu)建虛擬開(kāi)發(fā)環(huán)境的工具,支持window喻频,linux缩宜,mac,總有一款適合你甥温。并且vagrant 可以把配置好的環(huán)境打包成一個(gè)box锻煌,分享給其他人直接使用,非常方便
系統(tǒng)要求:(本人mac系統(tǒng))
機(jī)器支持虛擬化姻蚓,有時(shí)候需要調(diào)整bios開(kāi)啟cpu虛擬化炼幔。
第一步:安裝virtualbox (本人virtualbox版本 4.3.30)
具體安裝包請(qǐng)直接從官網(wǎng)下載:https://www.virtualbox.org/wiki/Downloads
第二步: ?安裝 vagrant (本人vagrant 版本 Vagrant 1.6.3)
$ vagrant -v
Vagrant 1.6.3
具體安裝包請(qǐng)直接從官網(wǎng)下載:https://www.vagrantup.com/downloads-archive.html
第三步:vagrant 基本命令(官網(wǎng)文檔:https://docs.vagrantup.com/v2/getting-started/index.html)
vagrant init? ? ? ? 初始化vagrantfile
vagrant add box? ? 添加box,自動(dòng)幫你生成vagrantfile
vagrant halt? ? ? ? 關(guān)閉虛擬機(jī)
vagrant destroy? ? 銷(xiāo)毀虛擬機(jī)
vagrant ssh? ? ? ? 連接虛擬機(jī)
vagrant reload? ? ? 重新加載vagarntfile文件
vagrantsuspend暫時(shí)掛起虛擬機(jī)
vagrant status? ? ? 查看虛擬機(jī)運(yùn)行狀態(tài)
第四步:示例演示
4.1 下載box
下面是ubuntu的兩個(gè)官方地址:
Ubuntu precise 32 VirtualBoxhttp://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBoxhttp://files.vagrantup.com/precise64.box
如果你要其他系統(tǒng)的鏡像史简,可以來(lái)這里下載:http://www.vagrantbox.es/
$ mkdir -p ?~/vagrant/boxes
$ cd~/vagrant/boxes && wget http://files.vagrantup.com/precise64.box
$ vagrant box add ubuntu64precise64.box //添加box
4.2 新建一個(gè)lnmp(linux + nginx + mysql + php-fpm)虛擬機(jī)
$ cd ~/vagrant && mkdir lnmp
$ cd lnmp
$ vagrant init ubuntu64 //初始化
$ vagrant up //啟動(dòng)虛擬機(jī)lnmp
$ vagrant ssh //進(jìn)入虛擬機(jī)lnmp
這個(gè)虛擬機(jī)就新建好了,是不是很快!圆兵!熟悉linux的就可以修改源跺讯,安裝軟件了
$ sudo apt-get install nginx mysql-server mysql-client ?php5-cli php5-fpm php5-gd php5-mysql
第五步:個(gè)性化配置Vagrantfile
在進(jìn)行 vagrant init 之后我們會(huì)發(fā)現(xiàn)對(duì)應(yīng)的目錄下有個(gè)Vagrantfile文件
直接上截圖,就不一個(gè)一個(gè)解釋了
注意事項(xiàng)
問(wèn)題一)使用 Apache/Nginx 時(shí)會(huì)出現(xiàn)諸如圖片修改后但頁(yè)面刷新仍然是舊文件的情況殉农,是由于靜態(tài)文件緩存造成的刀脏。需要對(duì)虛擬機(jī)里的 Apache/Nginx 配置文件進(jìn)行修改:
#nginx配置
sendfile off
#apache 配置
EnableSendFile off
問(wèn)題二:?jiǎn)?dòng)多個(gè)虛擬機(jī)提示錯(cuò)誤“2222 端口 in use”
解決辦法:(參考文章:Vagrant SSH errors with multiple VMs: Port 2222 in use)
config.vm.network "forwarded_port", guest: 22, host: 2220 ,id: 'ssh'
原文網(wǎng)站:http://www.vincentguo.cn/default/26.html(本人只轉(zhuǎn)發(fā)博客原創(chuàng)文章)