Vagrant ABC

好几个月前就安装了 laravel,但是一直没有真正用起来,因为没有配置的 vagrant 和一个普通的虚拟机是没有什么区别的,如果打开 VirtualBox,会发现其实里面就是跑着一个虚拟机而已。

vagrant 的强大在于是一个镜像,配置完以后镜像可以放到任何地方去,真正做到了一劳永逸了。

总结一下自己使用 vagrant 的一点笔记,以免以后忘记还得再去翻官方文档。

vagrant 的官方网站:http://www.vagrantup.com/ ,现在又改版了,挺漂亮的。

vagrant 的一些镜像:http://www.vagrantbox.es/ ,各种linux都有。

安装就不废话了,装上以后,在windows下需要配一下环境变量,把vagrant的bin目录放到环境变量里。

然后按照官方说的,执行这三部,然后一个虚拟机就起来了。

# 增加一个box,lucid32就是个ubuntu的virtualbox镜像
vagrant box add base http://files.vagrantup.com/lucid32.box
vagrant init #初始化
vagrant up #这个是真正的启动

虚拟机启动起来以后,就可以连接ssh了,虚拟机的22端口默认映射到了本机的2222端口,默认的用户名和密码都是vagrant,用 ssh 连上以后,初始化阶段基本就完成了。

记一下 vagrant 的一些常用命令。

  • vagrant up 开机
  • vagrant halt 关机
  • vagrant reload # 重新启动,主要用于重新载入配置文件

vagrant 的配置文件——vagrantfile

vagrantfile 在 vagrant 目录里面。配置基础开发环境主要是两个方面,一个是 config.vm.forward_port 选项,主要用于端口映射,初始的映射了22到本机的2222端口,我们可以把虚拟机的80端口映射到本机的4470上,然后再虚拟机里配好环境(例如 lnmp)以后访问 127.0.0.1:4470 就是访问虚拟机的80了,非常方便。

config.vm.forward_port 8080, 4470
config.vm.forward_port 80, 4471
config.vm.forward_port 3306, 3307

还有一个就是配置一下共享目录,做到本机开发,虚拟机测试。

# Share an additional folder to the guest VM. The first argument is
# an identifier, the second is the path on the guest to mount the
# folder, and the third is the path on the host to the actual folder.
config.vm.share_folder "v-data", "/data", "data"
# 把这一行的注释去掉,如上所说,第一个是个标志,第二个是你虚拟机里挂载的目录,第三个就是物理机的目录了,这个目录是777的,可以随意修改删除,所有操作在虚拟机和本机都是同步的。