设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

让VAGRANT启动并运行起来

2014-7-9 10:32| 发布者: joejoe0332| 查看: 12640| 评论: 0|原作者: petert, wulathink, AndyLam, 白文

摘要:   这是一个帮助你快速入门Vagrant的初级教程。官方文档也可以很好的帮助你入门,但是本文更针对完全零基础的初学者并且会对某些问题直接切入正题。  本文在任何方面都不会取代官方文档,而且我建议读完本文的人 ...

  这是一个帮助你快速入门Vagrant的初级教程。官方文档也可以很好的帮助你入门,但是本文更针对完全零基础的初学者并且会对某些问题直接切入正题。


  本文在任何方面都不会取代官方文档,而且我建议读完本文的人马上阅读官方文档。因此,如果你符合以下条件即可阅读本文:

  • 你想知道Vagrant是什么,它有什么作用。

  • 你想对为什么Vagrant会使你的开发环境增压又一个初步的理解。

  • 你想快速地在本地搭建一个PHP 5.4开发环境。


  注意! 如果你在寻找一个在Chef或者是Puppet中配置Vagrant的教程,本文并不适合你。本文也希望读者对命令行和git有基本的理解。最后,本文是针对Mac用户的,但是对PC用户和Linux用户也基本相同。


  Vagrant 是一个可创建轻量级、高复用性和便于移植的开发环境的工具。


  在非专业人士眼里,这意味着Vagrant抛弃开发环境中所有让人头痛的设置代之为了一个单一的配置文件,你可以选择你的服务器所需要的特性予以保留。你将不会再被XAMMP,手动配置虚拟环境,或者使用FTP远程编辑所卡住。


  Vagrant 是一个强有力的工具,它的功能和价值超出这篇文章所覆盖的范围以及我的理解所能到达之处。这篇文章将介绍Vagrant中一些相当酷的事情,比如:

  • 在你的机器中使用PHP5.4版本的LAMP。

  • 如何在你的虚拟机中便捷访问数据库。

  • 如何自动更新你的hostfile,使用URL引用虚拟服务器(developing on http://localhost:8080 versus http://myprojectname.local)。

  • 一些必要的Vagrant命令。

  • 最好和最有用的Vagrant插件。

  • 链接到更多资源和预建的Vagrant书库。


什么是Vagrant和为何我要甚为关注?

简单的原因:

在本地开发爽。用Vagrant快,简单,并可帮助你同时管理多个开发环境。

更长的原因:

想象一下,你正在和据说15人的团队开发一个应用程序。这个程序真是狂棒!它使用Laravel的PHP框架,Redis和Memcached,ImageMagick和GD的PHP模块,curl,MySQL和PostgreSQL, 甚至MongoDB。 另外,Laravel明确依赖PHP版本5.3.7或更高版本,以及mcrypt的PHP扩展。 

理想情况下,你会希望团队所有的15人在开发这个应用程序时,都是相同的开发环境。 但是不是所有的开发团队,都有系统管理的专家或者培养一个系统管理。获得相同设置的开发环境可能是一个非常艰巨的任务。 最重要的是,有些人使用的是Mac,而其他人则使用Linux或Windows。在它之前,开发人员会纠结在无尽的配置中,用电脑扔墙而筋疲力尽。

Vagrant将会替你管理好环境设置的种种,让你将精力用在业务代码的开发.

再来看一个场景,项目开发了一大半了发现需要安装Beanstalkd以便处理队列问题. 通常情况下,大家会停下来重新配置环境并期望 Bean stalkd能正常运行. 有了Vagrant, 只需要将更新文件推送到配置文件上即可, 所有人只需要刷新 Vagrant就行了.太棒了!接下来大家就能使用队列功能了. 这跟操作系统更没什么关系,不管是 Windows, Linux, 或是Mac,因为大家的操作环境都是一样的.


服务提供者和服务消费者

我提到了Vargrant会帮你打点环境配置的一切问题,这不能以偏概全. Vagrant工作需要服务提供者和消费者的配合来管理环境配置. 提供者, 像是 VirtualBox, VMWare, Amazon AWS, 和Digital Ocean, 就是你的虚拟环境的宿主.假设这些环境是 VirtualBox 或VMWare, 又或者是,  Amazon亦或Digital Ocean都能方便的部署环境到云端.

   


供应者 Provisioners 就是一些帮助你实现环境具体配置的工具软件. 这在管理繁琐的服务器配置方面发挥巨大作用. 有关服务器的配置基本都能被管理起来. 比如说 PHP, PHP Modules, Apache, Git, Vim, databases, logins, Xdebug, 等等. Vagrant最常使用的消费者是 Puppet Chef. 使用消费者管理环境配置的优势就是,在以后的环境配置时都可以使用先前的配置模板,不论是部署,发布和生产过程中都可以方面的使用起来.


好了! 开始使用LAMP 

下面将分步介绍在Mac上使用Vagrant 。我发现在在使用不同的OS, Vagrant 版本, Chef 版本, 以及virtual box 版本时会出现一些报错.这方面我也不是专家,也没办法解答所有的报错问题. 也许看起来每个问题都会等导致使用的失败,但奇怪的是所有组件合起来后却能正确的运行. 另外, Vagrant support 确实提供了坚强的后盾,开发团队 (beast developer?) 也在高频率的发布补丁版本.我建议在使用Vagrant时不要轻易升级软件,尤其是之前已经很顺畅的运行在你们系统上的 . 开发环境就像是你的孩子一样,不管有多么不尽人意都得接受!

安装插件

Note: 写这篇文章时 Vagrant版本是1.4, VirtualBox版本 4.3.4, Ruby版本 1.9  Mac OS X Mavericks 10.9.

Vagrant安装后,系统会弹出控制台窗口来验证. 可以直接键入下面命令:

vagrant -v

 Vagrant安装程序会自动添加相关路径到 PATH. 安装成功后,你会看到下面类似的图片.

   

之前说到过 Chef 消费者. 这里我们就是用Chef来替代 Puppet. 有个工具 Berkshelf用来管理 Chef’s 的组件(PHP, PHP Modules, Apache, Git, Vim, databases, logins, Xdebug, 等等.).本例中也是如此. Vagrant 或是Chef 并不一定要安装 Berkshelf, 但最好安装一下,以便后面Vagrant需要使用. 在 Mac上安装使用下面命令:

gem install berkshelf



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部