vagrant 是一款用来构建虚拟开发环境的工具,我们可以通过vagrant封装一个liunx开发环境,分发给团队中的其它人员,这样大家的开发环境都一样啦,而且现在的网站都是运行在liunx上,这样可以保持和线上的环境一样,避免了网站上线后在测试机没问题,线上有问题的想象。
安装步奏
1、下载vagrant和VirtualBox
vagrant 下载地址: http://www.vagrantup.com/downloads.html
VirtualBox下载地址: https://www.virtualbox.org/wiki/Downloads
box镜像下载地址:http://www.vagrantbox.es/
2、安装Vagrant 和 VirtualBox(windows上安装软件相信大家都知道,我这就不啰嗦啦)
3、在本地创建一个存放vagrant配置文件的目录,比如您的F:/www 目录
4、将下载的box镜像也放到此目录下,我下载的镜像名称为ubuntu-14.04-amd64-vbox.box接下来将以此为例。
5、打开cmd,执行命令切换到F:/www下 (cd F:/www)
6、在此命令下执行
- vagrant box add dev ubuntu-14.04-amd64-vbox.box
命令解析:vagrant 是vagrant的命令,box为参数,add为添加一个box环境,dev为你要创建的box环境名称,ubuntu-14.04-amd64-vbox.box 为你下载的box环境镜像。
- vagrant init dev
命令解析:vagrant 是vagrant的命令,init为参数,初始化一个box环境,dev为你要初始化的box环境名称。
这个时候你会在F:/www目录下看到一个Vagrantfile文件,此文件为vagrant的配置环境(一会在说配置文件)
最后在执行
- vagrant up
即可启动vagrant,并且会在virtualbox添加一个虚拟机,如下图
之后需要启动 vagrant ssh 才可以使用xshell,或者PuTTY 链接,在cmd中,执行vagrant ssh后,会出现如图所示
Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: F:\www\.vagrant\machines\default\virtualbox\insecure_private_key
默认密码:vagrant
开启ssh后即可用相应的工具,链接此系统了,之后便是在liunx上配置你需要的PHP环境,可以参考https://www.viphper.com/?p=872
vagrant的配置文件
下面说一下vagrant的配置文件,还记得这个配置文件在哪个目录下放着吧,不记得的在看一遍教程吧!
可以用notepad++打开Vagrantfile
config.vm.box = “dev” (即为你add box的时候的主机名,问了的话看看配置文件就可以啦)
#config.vm.network “forwarded_port”, guest: 80, host: 8080 (找到这行将前面的#号去掉)
这一行的意思是把对host机器上8080端口的访问请求forward到虚拟机的80端口的服务上,例如你在你的虚拟机上使用nginx跑了一个别的应用,那么你在host机器上的浏览器中打开http://localhost:8080时,Vagrant就会把这个请求转发到VM里面跑在80端口的nginx服务上,因此我们可以通过这个设置来帮助我们去设定host和VM之间,或是VM和VM之间的信息交互。
#config.vm.network “private_network”, ip: “192.168.33.10” (去掉这行前面的#号)
这里是私有IP只有你自己可以访问,若是想让局域网中的其它成员访问请将
# config.vm.network “public_network” (去掉这行前面的#号)
config.vm.network :public_network, ip: “192.168.8.88” (也可以变为这样)
虚拟机虽然可以自动DHCP,但这样配置了,就不需要来回变化IP地址啦!
将下面的这行改为如下,既可以将本地的程序映射到虚拟机中,是不是很方便呀。
# config.vm.synced_folder “../data”, “/vagrant_data”
改为
config.vm.synced_folder “F:/www”, “/var/www/html”
改完配置不要忘了用 vagrant reload 重启一下才可以生效。
最后修改一下本地的host:192.168.33.10 www.viphper.com 即可用虚拟域名访问啦。
若是碰到文件同步不上的情况请尝试执行:sudo apt-get install virtualbox-guest-utils
然后在vagrant reload重启。
vagrant常用命令
# vagrant halt 关闭虚拟化开发环境
# vagrant reload 修改配置文件后,重启虚拟化开发环境
# vagrant box list 查看当前可用的虚拟化开发环境
# vagrant box remove boxname 删除指定的box环境
# vagrant package 当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
# vagrant up 启动虚拟机
# vagrant destroy 销毁虚拟机