vagrant 本地开发环境的一些坑

vagrant对于本地开发来讲真的是很是的棒,通常公司的开发人员都不止一我的,因此要每一个开发人员都本身去搭建本地环境,会耗费很是多的时间,甚至还有可能会搭不起来的,就算搭起来了也不够统一,不可以和线上的保持一致。php

vagrant 是什么呢?

它是基于Virtual box(后面简称VBox了)而运行的,其实它就是在使用命令来控制Vbox,它可让你很是方便的去配置虚拟机,由于全部的配置都是在配置文件里面。html

各类坑

为何会出现这么多坑,还不是秉着一颗做死的心,非要弄 vagrant,并且还想把它大规模地在公司应用起来,就出现了如下的各类坑,要是你们还有被别的方式坑的,能够在回复里面写上噢。segmentfault

1、静态文件

安装好Apache和Nginx首先来测试静态文件(我使用的是.html结尾的),这些文件是从主机共享,而后虚拟机里面挂载的,使用的是Vagrant的:config.vm.synced_folder "/Users/bob/Documents/code/", "/var/www/",而后我在本地修改这些文件,发如今浏览器上刷新都不变,老是不相信浏览器,因而用命令行的curl 去测试,结果仍是同样的,后来终于在网上搜到了帖子:《使用 Vagrant 打造跨平台开发环境》,它这里说到了, 否则的话它就不变。windows

\# Apache 配置添加: EnableSendfile off
\# Nginx 配置添加:sendfile off;

2、磁盘满了

这个其实不能算Vagrant的坑,而是本身不细心,可是放到这也是在提醒本身和读者不要忘记这件事。
浏览器

3、文件权限

在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"]

4、运行vagrant up以后机器起不来

这个问题比较有意思,在咱们运行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
相关文章
相关标签/搜索