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

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

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

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

相关环境机软件版本:主机:win7;虚拟机:CentOS 6.5 x86_64;vagrant:1.9.5;virtualBox:5.2

一、安装步骤如下:

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

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

3、下载镜像,有几个地方可以下载:http://www.vagrantbox.es/和https://atlas.hashicorp.com/boxes/search都可以,这里我随便找了个centos65-x86_64-20140116

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

# 命令是这样的,title为自己起的名字,url为box地址,可以在线也可以本地
# vagrant box add {title} {url}
# 实际安装命令,本地下载下来的
vagrant box add CentOs6.5_64 E:\boxes\centos65-x86_64-20140116.box

5、找一个/新建一个目录,例如vagrant_project,然后初始化环境

#新建目录mkdir vagrant_project#打开此目录cd vagrant_project#初始化,CentOs6.5_64为你上方设置的titlevagrant init CentOs6.5_64

初始化成功后,本目录下会出现Vagrantfile这样一个文件,这个是vagrant的配置文件,后续的配置在这里修改

6、先都使用默认的配置,来启动下:

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: natdefault: 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常用的一些操作,挺不错的,试试吧!

转载于:https://www.cnblogs.com/gongchixin/articles/10141436.html

windows下vagrant的安装使用相关推荐

  1. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件 下载地址 ...

  2. windows 下mysql的安装于使用(启动、关闭)

    1.下载Windows (x86, 64-bit), ZIP Archive解压: 2.双击在bin目录里的mysqld.exe dos窗体一闪就没了,这时netstat -an发现port3306已 ...

  3. 在 Linux 和 Windows 下源码安装 Perl

    Perl 是一种功能丰富的计算机程序语言,运行在超过 100 种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发.在生物信息分析领域,Perl 主要是做数据预处理.文本处理 ...

  4. Windows下RStudio环境安装

    Windows下RStudio环境安装 # RStudio关键词搜索: # 下载RStudio-1.4.1717.exe # # 一般情况下下载个免费的就好了: # RStudio-1.4.1717. ...

  5. Windows下Rtools环境安装

    Windows下Rtools环境安装 你是否经常见这个提示: WARNING: Rtools is required to build R packages but is not currently ...

  6. Windows下查看已经安装的GPU的情况

    Windows下查看已经安装的GPU的情况 搞到了一块显卡(T4),安装在了Windows上面,那么如何查看显卡的情况那,,,,, 在linux下直接输入nvidia-smi就可以看到GPU的信息的情 ...

  7. php5.3安装memcache,Windows下的Memcache安装 附php5.3的扩展

    Windows下的Memcache安装: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 'c:\memc ...

  8. Windows下的Memcache安装

    很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程. 其实我开始研究Memcache的时候并不知道居然还有memc ...

  9. Windows下Memcached的安装与配置

    Windows下Memcached的安装与配置 安装: 1.下载memcached, http://www.danga.com/memcached/ ; 2.解压,比如放在 D:\memcached- ...

最新文章

  1. vue/cli 3.0 与 2.0脚手架怎样mock数据
  2. DenyHosts教程:防暴力破解SSH密码
  3. ZooKeeper安装,部署
  4. c语言 div ldiv_C ++中带有示例的ldiv()函数
  5. OpenJ_Bailian 4017 爬楼梯
  6. 两个小块随鼠标拖动_html,类练习
  7. java levenshtein算法_DNA分析 拼字检查 语音辨识 抄袭侦测 - Levenshtein算法
  8. php5.3.3php5.4如何支持zend,php5.3不支持ZendOptimizer的解决办法(Zend Guard Loader)
  9. ubuntu下查看apache的日志
  10. 招聘 | 刘知远老师博士生涂存超博士创办的「幂律智能」招NLP算法工程师啦
  11. 嵌入式(二)——Jlink接口定义
  12. pyltp进行词性标注
  13. 最短哈密顿环 退火_模拟退火法计算最短路径 用 高效的 图论中哈密顿贿赂的 AI...
  14. Lesson 18 Kaggle医学影像识别 PART 1
  15. 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个
  16. 各种机械键盘轴的差别,究竟什么轴好
  17. 【操作系统】实验三 进程调度模拟程序
  18. TensorRT 推理时提示This container was built for NVIDIA Driver Release 470.42 or later 解决方法
  19. iPhone(IOS10)忘记了访问限制的密码该怎么办?
  20. 华为服务器带外如何修改,华为服务器带外地址修改器

热门文章

  1. win2008 php mysql zend phpmyadmin_Windows2008 最新版Apache2.PHP5.MySQL6.PHPMyadmin.ZendOptimizer安装图解...
  2. webmvcconfigurer配置跨域_为什么加了 Spring Security 会导致 Spring Boot 跨域失效呢?...
  3. 南京大学2021计算机考研复试线是多少,34所自划线院校2021考研复试分数线-2021南京大学考研分数线已公布...
  4. python文本编辑器报错_notepad++编辑器中运行python程序时需要注意的编码格式
  5. 【Pytorch神经网络实战案例】15 WGAN-gp模型生成Fashon-MNST模拟数据
  6. 八、Vue cli3详解学习笔记
  7. LeetCode 6071. 完成所有任务需要的最少轮数
  8. LeetCode 2033. 获取单值网格的最小操作数(贪心)
  9. LeetCode 956. 最高的广告牌(DP)
  10. LeetCode 1538. Guess the Majority in a Hidden Array