vagrant 环境配置

vagrant是简便虚拟机操作的一个软件,而使用虚拟机有几个好处:

1、为了开发环境与生产环境一致(很多开发环境为windows而生产环境为linux),不至于出现在开发环境正常而移步到正式生产环境时出现各种问题,而vagrant通过共享文件,可以实现在主机(windows)下的IDE编写代码操作,直接在虚拟机(linux)中运行展示出效果。

2、在vagrant中只需要搭配一次开发环境,然后就可以将搭配好的环境系统镜像打包发送给其他的同事用了,其他同事只需要下载vagrant和virtualBox,然后配置下共享目录后就可以开发了,再也不需要关心配置环境的问题了。

3、目前好多扩展如swoole、redis等对linux支持更好,甚至有些只支持linux,所以采用虚拟机,再也不需要为学习新技术找借口了。

相关环境机软件版本:主机:win7;虚拟机:VirtualBox-5.0.10-104061-Win.exe;vagrant:vagrant_1.8.6.msi;virtualBox:centos-6.6-x86_64.box(win7版本不要轻易升级,很可能不兼容,上述版本已测试可用!)

一、安装步骤如下:

1、下载virtualBox,地址点这里,安装

2、下载vagrant,地址点这里,安装

3、下载镜像,有几个地方可以下载:http://www.vagrantbox.es/和https://atlas.hashicorp.com/boxes/search都可以

4、将下载的镜像加载,顺便说下,第3步可以不用,vagrant支持在线安装镜像,但由于长城的原因,所以最好通过其它方法将镜像下载下来,再在本地加载,,打开cmd,输入以下命令:

命令是这样的,title为自己起的名字,url为box地址,可以在线也可以本地

vagrant box add {title} {url}

实际安装命令,本地下载下来的

vagrant box add CentOs6.5_64 D:\Soft\Work\virtual_box\centos-6.6-x86_64.box
5、找一个/新建一个目录,例如D:\file\vagrant\redis,然后初始化环境

复制代码

新建目录

mkdir redis

打开此目录

cd redis

初始化,CentOs6.5_64为你上方设置的title

vagrant init CentOs6.5_64
复制代码
PS:vagrant box地址需要和上述软件安装在同一盘符里。
初始化成功后,本目录下会出现Vagrantfile这样一个文件,这个是vagrant的配置文件,后续的配置在这里修改

6、先都使用默认的配置,来启动下:
进入vagrantfile所在目录,如:D:\file\vagrant\redis
vagrant up
会显示一系列启动信息:

复制代码
==> default: Clearing any previously set forwarded ports…
==> default: Clearing any previously set network interfaces…
==> default: Preparing network interfaces based on configuration…
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports…
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running ‘pre-boot’ VM customizations…
==> default: Booting VM…
==> default: Waiting for machine to boot. This may take a few minutes…
default: SSH address: 127.0.0.1:2222//注意这里
default: SSH username: vagrant//这里
default: SSH auth method: private key
…….
复制代码
如果不报错的话就算是启动成功了,如果出现错误则谷歌或百度,我这边主要遇到的错误为无限卡在 default: SSH auth method: private key这个地方,很大可能的原因是本机没有开启虚拟化技术,重启电脑,按f2或其它的键进入bios设置,找到virtual相关字样的开启即可。

7、远程连接linux,此时windows下可以用putty或者是xshell来连接,host地址如上方标识的注意: 127.0.0.1:2222,用户名密码都为:vagrant

此时,默认的共享文件夹的对于关系是windows下的vagrant_project文件夹对应linux下的/vagrant文件夹,可以随便在双方建立几个文件测试下是否两方是同步的

8、关闭等命令,由于还有好多需要配置,暂时可以关闭,等配置完成后再启动

关闭

vagrant halt

重启

vagrant reload
二、网络配置、共享目录等相关配置

以上仅仅是展示了安装和开启的简单用法,但真正能用于开发还需要额外的配置,打开上方提到的Vagrantfile配置文件来进行配置,好多都是已注释掉的,选择去掉即可

1、网络配置,vagrant有三种配置方法:官网文档点这里查看

  a、端口映射,意思是将虚拟机的端口映射到主机的端口上,主机局域网内可以通过访问这个端口来访问到你虚拟机上的东西

config.vm.forwarded_port 80, 8080
  上述作用是将虚拟机的80端口映射到主机的8080端口上,那我直接访问主机的8080端口就相当于访问虚拟机的80端口

  b、私有网络,只有主机才能访问虚拟机,主句局域网内成员不能访问的虚拟机的内容

config.vm.network “private_network”, ip: “192.168.33.10”
  上述设置完成后,在本机可以通过192.168.33.10来访问虚拟机,需要注意192.168.33.10虽然可以随便设定,但如果主机的ip为192.168.1.xxx字段,那就不要这个再用这个区段,可以2.xxx或3.xxx或其它,以免造成冲突。

  c、共有网络,主机局域网内成员可以访问虚拟机中的内容,虚拟机相当于局域网内的一员

config.vm.network “public_network”, ip: “192.168.1.120”
  以上配置一般来说开发环境也不需要局域网内成员访问,所以大部分情况下是选择用b、私有网络来开发,这个可根据实际情况来选择。

2、共享目录,用户可以自定义共享目录,在Vagrantfile配置文件中配置:

禁用原有的默认的共享目录

config.vm.synced_folder ‘.’, ‘/vagrant’, disabled: true

增加新的共享目录,第二个参数以当前文件夹为基准

config.vm.synced_folder “abc”, “/www/web/abc”,
上方相当与windows下的vagrant_project/abc文件夹对应linux下的/www/web/abc文件夹

除了可以自定义共享文件外,还可以选择共享的方式,vagrant有四种共享的方式,官网文档请点这里查看

  a、NFS共享方式,windows平台无法使用此配置,且用此方式时不能修改文件的所有者和所有组

  b、RSync共享方式,所有平台都可以使用,但这种方式貌似有个缺点就是主机的改动可以同步到虚拟机中,但虚拟机中的改动无法同步到主机中,如果要实现双向同步可能还需做其它设置,由于没有用过,所以不太清楚。

  c、SMB共享方式,只有windows平台可以使用,曾有找一些资料来配置,但一直没有成功,所以具体的并不太清楚,但貌似效率是挺不错的。

  d、VirtualBox共享方式,这是VirtualBox提供的也是vagrant默认的共享方式。当文件数量小时用着不错,当文件数量大的时候打开网页会卡到超时。

总之以上,如果主机是mac,则推荐用NFS共享方式,如果是windows则推荐用smb或者rsync方式,如果文件很少,那用默认的就可以了。

但除了上方说的,windows下其实还有方式可以加快网站访问速度,那就是用Vagrant WinNFSd这款插件,插件地址点这里,这种方式是windows下提高速度最简单的方式了:

vagrant plugin install vagrant-winnfsd
安装完成后配置type为nfs,虽然官网上说nfs不能应用于windows,但用这个插件后就可以了。

config.vm.synced_folder “abc”, “/www/web/abc”,type:”nfs”
测试了下,此插件还是非常有效的,原先打开yii2框架的文件会超时,或10、20多秒,但用了这个后响应在2s以内,还是可以接受的。另提供一个参考资料:让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题

三、域名访问及打包分发

1、域名访问,主要是虚拟的本地域名配置问题

这里还是安装了lanmp_v3.1,具体的安装方法可以看以前的文章:Linux下安装LANMP环境或者去下载官网上去找安装说明

新建一个站点,指定目录到共享的目录,随便取个虚拟的域名:www.abc.com

测试需要在主机中修改host,如下:(至于虚拟机中/etc/hosts文件中,测试修改与不修改都不影响访问)

192.168.33.10 www.abc.com
192.168.33.10 abc.com
然后直接在浏览器中用http://www.abc.com既可显示虚拟机中的内容了。而直接在windows中的的IDE修改文件,会实时通过这个网址展示出来。

2、打包分发

vagrant package
等待一段时间,会发现在目录生成一个package.box的文件,这个就是已经包含安装环境的镜像了,将此镜像发给同事,让其安装上方所属的步骤加载镜像vagrant box add {title} {url}命令,然后配置自己的网络及共享文件夹就可以直接开发了,远离重新配置环境的烦恼。

以上就是vagrant常用的一些操作,挺不错的,试试吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与Min_25筛有关的一些模板

模板 求∑i1nf(i),f(pk)pk(pk−1)\sum \limits_{i 1} ^{n} f(i), f(p ^ k) p ^ k \times(p ^ k - 1)i1∑n​f(i),f(pk)pk(pk−1),最后对mod1e97\bmod 1e9 7mod1e97,这个函数是个积性函数。 /*Author : lifehappy */ #pragma GCC optimize(2) #pragm…

P4897 【模板】最小割树(Gomory-Hu Tree)(网络流/最小割/树形结构)

P4897 【模板】最小割树(Gomory-Hu Tree) 这个算法可以用来求解一个无向图上任意两点的最小割,具体过程就是每次选择两个点求最小割,然后在一个新图中这两个点连边,然后对于这两个点的连通块分别递归处理,…

程序员过关斩将--cookie和session的关系其实很简单

喜欢就点关注吧!月高风下,下班路上....菜菜哥,告诉你一个秘密,但是不允许告诉任何人这么秘密,你有男票了?~不是,昨天我偷偷去面试了,结果挂了这不是好事吗,上天让公司留住你.....好吧…

Georgia and Bob(Poj 1704)Nim 博弈

Georgia and Bob 思路 每个棋子只能向左移动并且不能越过其左边的棋子,这就有点像是经典的nim博弈了, 但是在这里后一个石子会受到其前一个石子位置的影响,这里就需要转化一下了。 我们假设只有两个棋子,x,y,x>0,y>xx, …

.NET导出Excel的四种方法及评测

前言导出Excel是.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOI、EPPlus、OpenXML、Aspose.Cells四个市面上常见的库,各完成一个导出Excel示例。然后对其代码风格和性能做一个横向比…

[2021.1.27多校省选模拟10]染色(min-max容斥/二项式反演)

[2021.1.27多校省选模拟10]染色 突然发现我对概率期望的理解不是很好。。。 部分分1:可以直接进行状压dp,然后按照题意模拟即可。 部分分2:首先可以发现这个问题是min_max容斥形式,然后对于min(T)的问题,我们将问题转…

1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)

1847 奇怪的数学题 推式子 ∑i1n∑j1nsgcd(i,j)k∑d1nsgcd(d)k∑i1nd∑j1nd[gcd(i,j)1]∑d1nsgcd(d)k(2∑i1ndϕ(i)−1)\sum_{i 1} ^{n} \sum_{j 1} ^{n} sgcd(i, j) ^k\\ \sum_{d 1} ^{n} sgcd(d) ^k \sum_{i 1} ^{\frac{n}{d}} \sum_{j 1} ^{\frac{n}{d}} [gcd(i, j) …

[2021.1.27多校省选模拟10]跑步(线段树合并)

[2021.1.27多校省选模拟10]跑步 经典的树上启发式合并题目,维护对应子树的从当前点到子树内一个节点这个链待定,其他部分已经确定的方案数,这个东西按照对应点到根节点的路径点权和为下标存在一个权值线段树中,然后维护这个权值线…

ASP.NET Core 双因素验证2FA 实战经验分享

必读本文源码核心逻辑使用AspNetCore.Totp,为什么不使用AspNetCore.Totp而是使用源码封装后面将会说明。为了防止不提供原网址的转载,特在这里加上原文链接:双因素认证双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起…

银行卡BIN码大全

BIN号即银行标识代码的英文缩写。BIN由6位数字表示,出现在卡号的前6位,由国际标准化组织(ISO)分配给各从事跨行转接交换的银行卡组织。银行卡的卡号是标识发卡机构和持卡人信息的号码,由以下三部分组成:发卡行标识代码(BIN号)、发…

HDU 1404 Digital Deletions(博弈 + SG函数打表)

Digital Deletions 思路 一道博弈论的题目,考虑到题目所给的范围是字符长度为1−>61-> 61−>6,所以我们可以考虑暴力打表出10610 ^ 6106内的所有状态, 确定基本的两个状态sg[0]1[先手胜],sg[1]0[后手胜]sg[0] 1[先手胜], sg[1] …

cjy基础动态规划

cjy基础动态规划 P2219 [HAOI2007]修筑绿化带 对于一个nm的矩形空间内,然后选择一个ab的矩形加上它所在部分的权值,然后在内部再选择一个c*d的矩形,然后减去它的权值和,求解最大的权值。 首先我们可以通过枚举求得所有右下角对…

Be the Winner(结论:反nim博弈)

Be the Winner 结论 记一个结论:反nim博弈,先手必胜1:尼姆和为零,所有值为1。2:尼姆和不为零,有一个大于1的数。 代码 /*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #inc…

结合“性能监视器” 排查、处理性能瓶颈导致应用吞吐率等指标上不去的问题...

双11备战前夕,总绕不过性能压测环节,TPS 一直上不去 / 不达标,除了代码上的问题外,服务器环境、配置、网络、磁盘、CPU 亦是导致性能瓶颈的重要一环,本文旨在分享最近项目性能压测过程中的排查经验,文中的表…

坑点、问题记录

1:项目Spring版本升级之后,服务启动有如下报错: 六月 02, 2018 5:51:49 下午 org.apache.catalina.core.ApplicationContext log 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creatin…

E - The Imp(博弈/动态规划)

E - The Imp 有n个物品且分别为价值vi成本ci,然后每次选择购买后,有人可以使用k次魔法,使得物品消失但是成本仍然花费了,求解最大收益。 首先最后的最优解序列,一定是可以由自己决定的,那么它一定满足vi递…

Mult-Nim博弈

Nim or not Nim? 结论 Mult−NimMult-NimMult−Nim博弈:有nnn堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿)或把一堆数量不少于22石子分为两堆不为空的石子,没法拿的人失败,问谁会胜利。 结论SG(x)x−1[xmod40],…

提高工作效率的方法

1:集中注意力、专注度 1)远离分散你注意力的东西(如:将手机锁到柜子里) 2)保持主航道不变:在做A的时候,不要因为想到了B,就去做B。而是判断B的重要、紧急程度&#xff…

背包dp的核心思想(动态规划)

背包dp 突然发现我一直没有真正理解背包,真正的背包应该是用空间换时间的一种dp方法,本质上就是n个物品选或不选,理论上有2n2^n2n种可能结果,但是背包利用的就是值域很小这一特点来重叠子结构,所以背包本质上处理的应该是一个集合…