Vagrant打造跨平台零配置Web开发环境问题和解决方案汇总

我使用的Vagrant配置镜像:
https://github.com/scotch-io/scotch-box

对应的box文件链接:
https://drive.scotch.io/scotchbox/2.5.0/scotch.box

vagrant本地加载box:vagrant box add ... ...

vituralbox 4.3.12版本链接:
http://download.virtualbox.org/virtualbox/4.3.12/VirtualBox-4.3.12-93733-Win.exe

win10 hostonly问题补丁链接:
https://www.virtualbox.org/attachment/ticket/14040/VBox-Win10-fix-14040.exe

安装缘起

实验室有一台win10主机,自用MBP,平时本来不怎么做web开发的(我的研究方向和这个关系不大),但上课科目中有一门要用到web开发,为了尽可能不对当前的桌面环境配置产生影响,同时能够正常完成老师布置的作业,于是尝试使用vagrant。

还有一点,我想在Win、OSX平台下获得一致的开发体验,不需要我在每个平台都重新配置一遍,这个刚好vagrant也可以满足。

Windows 10下安装Vagrant

Vagrant需要本机上装有Virtualbox和Git,不过Vagrant安装包里边自带了这两个软件,我本以为这样直接就可以了,没想到,这里有一个坑。

Virtualbox兼容性问题

Virtualbox for win存在版本兼容性问题,试了很多次虚拟机都启动不起来,各种出错,谷歌之,说版本降级可解决,经过一番比较,Virtualbox 4.3.12版无兼容性问题,下载链接见文首。

hostonly问题

配置Vagrant的时候,为了让虚拟机能够和宿主机通信,一般采用的是hostonly的网络设置,但是这样配置之后,虚拟机启动失败,错误提示:

VBoxManage.exe: error: Failed to create the host-only adapter

谷歌之,在官方论坛上找到了对应问题的ticket,这个问题可能依旧是Win10不兼容导致的,不过幸运的是有补丁,打上补丁就搞定了,链接在这里:
https://www.virtualbox.org/attachment/ticket/14040/VBox-Win10-fix-14040.exe
下次在开启虚拟机之前,首先以管理员模式打开这个补丁就行了。

OSX 10.11下安装Vagrant

OSX 10.11下安装Vagrant一切正常,并未发生问题。

Vagrant的box镜像选择

要求

毕竟web开发,box镜像中,PHP、Node、Mysql等等必备的东西一个都不能少,最好是都配置完好的,能够直接使用

方案一✗基于puppet脚本的Vagrant配置镜像

使用puppet,就可以让系统自己安装预先设定好的软件,想来也是不错的,在Github上搜寻到了一个star比较多的项目

https://github.com/dirkaholic/vagrant-php-dev-box

按照上边的步骤操作,出现的错误,我谷歌之亦未寻得答案,只好作罢。

error

看到错误提示,应该是puppet脚本出现问题了,返回了错误的值,又想到我的Ubuntu双系统中apt-get update语句执行之后便是漫长地等待,觉得使用puppet安装这些软件可能不是一个适合我的选择

方案二✗PuPHPet

PuPHPet

这其实也是一个基于puppet的一个vagrant配置镜像,原理和方案一差不多,不同之处在于方案二拥有一个GUI界面来配置每一个细节,给了用户更多的定制性,当然,对于刚刚接触web开发的同学或者仅仅需要最基本功能的同学来说,这倒成了一种负担。

方案三✔︎基于已配置好的打包box的Vagrant配置镜像

Github上另外一个项目引起了我的注意:

https://github.com/scotch-io/scotch-box

根据首页上的介绍,不需要联网配置,不使用puppet这类运维工具配置,即装即用,几乎完全满足了我的需求。

按照步骤配置下来,终于在折腾了一下午之后成功启动虚拟机

scotch box

剩下的按照首页上的介绍直接使用就好了,这里不再多述。

Vagrant镜像安装技巧:box镜像文件快速下载

box镜像文件动辄五六百MB,如果用Vagrant默认的下载方式,真的不知道下到啥时候,这里介绍一个『快一点』的下载方式:

  1. 首先按照正常步骤,输入vagrant up之后会有一句指示当前下载box文件的url,例如

    ==> default: Adding box 'hashicorp/precise32' (v1.0.0) for provider: virtualbox
    
    default: Downloading: https://atlas.hashicorp.com/hashicorp/boxes/precise32/versions/1.0.0/providers/virtualbox.box
    
  2. 此时我们ctrl+c强制停止当前进程,将url拷贝到迅雷或者别的下载工具中进行下载,下载完成后进入下载目录,打开命令行,输入(其中hashicorp/precise32为配置文件为box镜像起的名字

    vagrant box add hashicorp/precise32
    
  3. Vagrant会自动对box镜像进行处理,此时我们再回到之前的Vagrant配置目录中,vagrant up启动,过不了一会儿就安装好了。

额外配置:修改默认的public同步文件夹至其他文件夹

打开Vagrantfile,找到

config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]

修改"."为自己的目录,然后vagrant up开启虚拟机,进入ect/apache2目录,配置vituralhost的directory,从public改为自定目录即可

总结

  1. puppet一件利器,但是还是需要看使用场景,至少在我这个场景下我觉得直接全部打包更方便快捷。
  2. 在国内的网络环境,能够离线安装就离线安装,在线的方式费时费力还不一定成功
  3. 下次有时间再试试Docker,看看有没有这么多坑。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容