0.介绍

Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。
我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。

  1.安装过程

  1. 安装 VirtualBox

  虚拟机  VirtualBox 免费小巧
  下载地址:https://www.virtualbox.org/wiki/Downloads
  * Vagrant 也支持 VMware,VMware 收费,对应的 Vagrant 版本也收费

  2. 安装 Vagrant

  下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。

  此外,还得下载官方封装好的基础镜像:

  Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box

  Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box

  如果你要其他系统的镜像,可以来这里下载:http://www.vagrantbox.es/

  * 鉴于国内网速,我们将下载镜像的步骤单独剥离出来了

  3. 添加镜像到 Vagrant

  假设我们下载的镜像存放路径是 ~/box/precise64.box,在终端里输入:

  $ vagrant box add hahaha ~/box/precise64.box

  hahaha 是我们给这个 box 命的名字,~/box/precise64.box 是 box 所在路径

  4. 初始化开发环境

  创建一个开发目录(比如:~/dev),你也可以使用已有的目录,切换到开发目录里,用 hahaha 镜像初始化当前目录的环境:

  $ cd ~/dev # 切换目录

  $ vagrant init hahaha # 初始化

  $ vagrant up # 启动环境

  你会看到终端显示了启动过程,启动完成后,我们就可以用 SSH 登录虚拟机了,剩下的步骤就是在虚拟机里配置你要运行的各种环境和参数了。

  $ vagrant ssh # SSH 登录

$ cd /vagrant # 切换到开发目录,也就是宿主机上的 `~/dev`

  ~/dev 目录对应虚拟机中的目录是 /vagrant

  Windows 用户注意:Windows 终端并不支持 ssh,所以需要安装第三方 SSH 客户端,比如:Putty、Cygwin 等。

  5. 其他设置

  Vagrant 初始化成功后,会在初始化的目录里生成一个 Vagrantfile 的配置文件,可以修改配置文件进行个性化的定制。

  Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://localhost:80

这种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式显得方便多了。

打开 Vagrantfile,将下面这行的注释去掉(移除 #)并保存:

  config.vm.network :private_network, ip: "192.168.33.10"

  重启虚拟机,这样我们就能用 192.168.33.10 访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。

  6. 打包分发

  当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:

  $ vagrant package

  打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

  7. 常用命令

     $ vagrant init # 初始化

$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态

$ vagrant destroy # 销毁当前虚拟机

  

更多内容请查阅官方文档 :

http://docs.vagrantup.com/v2/cli/index.html

  8. 注意事项

  使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:

  # Apache 配置添加:EnableSendfile off# Nginx 配置添加:

  sendfile off;

vagrant 使用方法的更多相关文章

  1. vagrant WARNING: You are not using an encrypted connection

    开发环境:vagrant 1.7 + centos 6(i386) + LAMP Drupal版本:7.53 在vagrant LAMP开发环境中,给Druapl安装模块时,显示WARNING: Yo ...

  2. Vagrant + PHPStorm 使用 Xdebug

    PHPStorm设置 打开您的项目,一旦打开,转到首选项并在语言和框架> PHP分支下查找解释器. 使用解释器旁边的三个点按钮[...]添加一个新的解释器,这将打开一个新的选项窗口. 在新窗口的 ...

  3. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  4. vagrant安装及使用方法

    http://www.chenjie.info/1757 http://blog.csdn.net/zsl10/article/category/6324870   --以下转自MaxWellDuva ...

  5. (原创)vagrant up 异常报错,出现 There was an error while executing `VBoxManage` 的解决方法

    最近在使用 vagrant homestead 时,不小心在虚拟机上使用了 exit 命令退出虚拟机,导致再使用 vagrant up 时出现以下错误: Bringing machine 'larav ...

  6. vagrant public_network 自定义静态 ip配置方法

    Vagrant 创建虚拟化开发环境 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. ...

  7. vagrant nginx php开发环境中浏览器访问js文件,文件中出现乱码的解决方法

    当nginx配置 sendfile设置为on时,某些js文件中会出现奇怪的字符: ����������������� 不管怎么刷新,重启服务都无效: 通过google搜索之后发现原来是因为开启send ...

  8. 解决vagrant up启动失败,停留在Booting VM...过程的方法

    如图,这种情况是因为没有正确关闭虚拟机导致的,关闭时应在命令行使用vagrant halt 命令,如果直接关机便会出现这种情况. 解决办法:直接启动VirtualBox,并在命令行vagrant ha ...

  9. Vagrant Box下载缓慢解决方法

    box 搜索页面:https://atlas.hashicorp.com/boxes/search example:homestead 1,选中box和版本,先根据提示安装 2,获取box下载地址,采 ...

随机推荐

  1. SQL Server使用LIKE运算符进行匹配查询

    在查询的过程中,如果遇到不能明确的指明查询的限定条件时,就会用到LIKE运算符进行模式匹配查询.在查询时可以使用如下几个通配符: %:包含零个或多个字符的任意字符串 —(下划线):任何单个字符 []: ...

  2. 5.6.3.7 localeCompare() 方法

    与操作字符串有关的最后一个方法是localeCompare(),这个方法比较两个字符串,并返回下列值中的一个: 如果字符串在字母表中应该排在字符串参数之前,则返回一个负数(大多数情况下是-1,具体的值 ...

  3. 制作一个vagrant的win7 box

    准备: 1.win7镜像文件 2.vagrant安装文件 3.virtual box安装文件 步骤: 1.先在本机上安装virtualbox和vagrant,本机为win7,安装虚机也为win7 2. ...

  4. 用PyRestful快速构建Tornado下REST APIs 的支持

    一.安装PyRestful库 $ pip install pyrestful 二.使用案例 (一)books_service.py # -*- coding: utf-8 -*- import tor ...

  5. Latex调整行距

    修改行间距的方法: \usepackage{setspace}%使用间距宏包 \begin{document} \begin{spacing}{2.0}%%行间距变为double-space 双倍行距 ...

  6. [LeetCode]题解(python):115-Distinct Subsequences

    题目来源: https://leetcode.com/problems/distinct-subsequences/ 题意分析: 给定字符串S和T,判断S中可以组成多少个T,T是S的子串. 题目思路: ...

  7. perl5 第八章 子程序

    第八章 子程序 by flamephoenix 一.定义二.调用  1.用&调用  2.先定义后调用  3.前向引用  4.用do调用三.返回值四.局部变量五.子程序参数传递  1.形式  2 ...

  8. CSF 中的应用程序请求路由

    编辑人员注释:本文章由 AzureCAT 团队的 Christain Maritnez 撰写. 应用程序请求路由(简称为 ARR)可能是 Microsoft 使用的技术中讨论得最少但极为重要的技术之一 ...

  9. BZOJ 3211 花神游历各国 (树状数组+并查集)

    题解:首先,单点修改求区间和可以用树状数组实现,因为开平方很耗时间,所以在这个方面可以优化,我们知道,开平方开几次之后数字就会等于1 ,所以,用数组记录下一个应该开的数,每次直接跳到下一个不是1的数字 ...

  10. Qt 4.6: A Quick Start to Qt Designer

    Qt 4.6: A Quick Start to Qt Designer A Quick Start to Qt Designer Using Qt Designer involves four ba ...