vagrant对于本地开发来讲真的是很是的棒,通常公司的开发人员都不止一我的,因此要每一个开发人员都本身去搭建本地环境,会耗费很是多的时间,甚至还有可能会搭不起来的,就算搭起来了也不够统一,不可以和线上的保持一致。php
它是基于Virtual box(后面简称VBox了)而运行的,其实它就是在使用命令来控制Vbox,它可让你很是方便的去配置虚拟机,由于全部的配置都是在配置文件里面。html
为何会出现这么多坑,还不是秉着一颗做死的心,非要弄 vagrant,并且还想把它大规模地在公司应用起来,就出现了如下的各类坑,要是你们还有被别的方式坑的,能够在回复里面写上噢。segmentfault
安装好Apache和Nginx首先来测试静态文件(我使用的是.html结尾的),这些文件是从主机共享,而后虚拟机里面挂载的,使用的是Vagrant的:config.vm.synced_folder "/Users/bob/Documents/code/", "/var/www/"
,而后我在本地修改这些文件,发如今浏览器上刷新都不变,老是不相信浏览器,因而用命令行的curl 去测试,结果仍是同样的,后来终于在网上搜到了帖子:《使用 Vagrant 打造跨平台开发环境》,它这里说到了, 否则的话它就不变。windows
\# Apache 配置添加: EnableSendfile off \# Nginx 配置添加:sendfile off;
这个其实不能算Vagrant的坑,而是本身不细心,可是放到这也是在提醒本身和读者不要忘记这件事。浏览器
在windows上的时候进入虚拟机后发现,共享的文件所有都是777的权限,并且还改不过来,这是怎么回事呢。这是phpmyadmin报出的错误:curl
Wrong permissions on configuration file, should not be world writable! ( ! ) Notice: Array to string conversion in /var/www/phpmyadmin/libraries/Error.class.php
经过一番Google以后终于找到了问题的解决:http://serverfault.com/questions/398414/vagrant-set-default-share-permissions, 能够在配置文件里面填写:ide
config.vm.synced_folder "/Users/bob/Documents/code/", "/var/www/", :mount_options => ["dmode=755","fmode=644"]
这个问题比较有意思,在咱们运行vagrant up
这个命令的时候它会让Vbox去启动这个虚拟机,而后等虚拟机启动完成以后就修改相应的配置,可是却遇到了一个问题,Vbox撒娇了——就不起来,因而只能打开Vbox手动去点启动,发现也启不来,却获得了一个报错:Error VT-x
,最终解决也是在stackoverflow里面找到的,默承认能cpus等于的是2,可是咱们有的机器配置偏低就起不来了,因此把它改为1以后再启动就行了。测试
config.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--cpus", "1"] end