Vagrant的更新比較多,所以你們不要盡信網上的教程,包括此文,建議使用最新版,配置仍是以Vagrant官網文檔爲準。html
須要掛載的路徑不能在虛擬機中建立符號連接!!!不然沒法正常掛載!!!linux
Vagrant 是一款用來構建虛擬開發環境的工具,它底層支持VirtualBox、VMware甚至AWS做爲虛擬機系統。git
Vagrant能作什麼?github
避免重複搭建開發環境。新員工加入,不用浪費時間搭建開發環境,快速加入開發,減小時間成本的浪費;web
多個相互隔離開發環境。能夠在不用box裏跑不一樣的語言,或者編譯安裝同一語言不一樣版本,搭建多個相互隔離的開發環境,卸載清除時也很快捷輕鬆。redis
安裝 和 配置?ubuntu
#提早下載好的box文件,~/box/precise64.box,咱們給這個box命名爲ubuntu12.04
vagrant box add ubuntu12.04 ~/box/precise64.box
#box文件也能夠是遠程地址 base 爲默認名稱
#vagrant box add base http://files.vagrantup.com/lucid64.box
#打開目錄
#cd ~/vagrant/work
#初始化
vagrant init
#若是你添加的box名稱不是base,那麼須要在初始化的時候指定名稱,例如
vagrant init ubuntu12.04
vagrant up
vagrant ssh
vagrant reload
vagrant package
vagrant -h
開發目錄下有一個文件Vagrantfile,裏面包含有大量的配置信息,主要包括三個方面的配置,虛擬機的配置、SSH配置、Vagrant的一些基礎配置。
打開看一下,註釋很全,因此不用擔憂不會配置了,下面主要備忘幾個經常使用配置:segmentfault
config.vm.box = "ubuntu12.04"
config.vm.hostname = "for_work"
#config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network"
config.vm.synced_folder "../data", "/vagrant_data"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.provider "virtualbox" do |vb|
#Display the VirtualBox GUI when booting the machine
vb.gui = true
#Customize the amount of memory on the VM:
vb.memory = "1024"
vb.cpus = 2
vb.name = "my_vm"
end
使用 Apache/Nginx 時會出現諸如圖片修改後但頁面刷新仍然是舊文件的狀況,是因爲靜態文件緩存形成的。須要對虛擬機裏的 Apache/Nginx 配置文件進行修改:緩存
# Apache 配置添加:
EnableSendfile off
# Nginx 配置添加:
sendfile off;
How to make Vagrant performance not suck ?
Vagrant NFS configration網絡
具體配置操做,參考原文 和 vagrant文檔。
nfs權限問題
config.vm.synced_folder '.', '/vagrant', :nfs =>{
:linux__nfs_options => ["no_root_squash"],
:map_uid => 0,
:map_gid => 0
}
域名解析慢的問題
Vagrant: Slow internet connection in guest
config.vm.provider :virtualbox do |vb|
#vb.gui = true
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
報錯:
Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was:
嘗試:
//sudo apt-get install virtualbox-guest-dkms
sudo apt-get install virtualbox-guest-utils
報錯:
default: stdin: is not a tty
vi /root/.profile
把 mesg n
替換成 tty -s && mesg n
報錯:
redis Can't open the log file
redis 沒法加載.rdb
redis 沒法載入.rdb
解決辦法:
把 redis:redis 用戶組設置更改成 vagrant:vagrant.
Permissions error trying to dump Redis to a Vagrant shared folder
參考: