使用vagrant+VirtualBox+box文件共享php web开发环境(windows)

多人开发是目前团队中很普遍的现象。如果公用一个开发环境,难免会出现代码相互覆盖的问题。不敢盲目的auto_upload,遇到问题排查至少花费10min+…
介于这个问题,使用统一的、便捷的开发环境迫在眉睫。这里介绍一种方法:vagrant+VirtualBox+box文件共享。

软件介绍

VirtualBox:免费的虚拟机软件,无需多说。
vagrant:Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
box文件:使用vagrant打包的系统景象文件。

软件版本

VirtualBox:VirtualBox-5.0.0-101573-Win(如需使用共享文件夹等扩展功能,请安装vbox版本对应的Extension Pack)
vagrant:vagrant_1.7.4
OS:CentOS-minimal

软件安装

VirtualBox:正常安装(如需使用共享文件夹等扩展功能,请安装vbox版本对应的Extension Pack)
vagrant:正常安装
**OS:在VirtualBox中安装
**box文件:将VirtualBox中的centos打包后即可得到box文件
以上两步参考 搭建Vagrant+VBox+CentOS-7+共享文件夹的开发环境

使用box文件搭建环境

推荐一个环境结构目录:

-development        #开发环境
       |--box       #存放box文件
       |--data      #共享文件夹
       |--vagrant   #vagrant执行目录

这样将box_name.box文件放入box目录,然后进入vagrant执行:

vagrant box add —name box_name ..\box\box_name.box
vagrant init box_name.box

如果成功,可以使用下面命令查看box:

vagrant box list

init成功之后,需要修改一下Vagrantfile。这里给出一个推荐的:

Vagrant.configure(2) do |config|
  config.vm.box = "ifly"
  #虚拟机ip
  config.vm.network "private_network", ip: "192.168.12.31"
  #共享文件夹
  config.vm.synced_folder "../data", "/vagrant_data"
end

接下来就可以启动虚拟机了

vagrant up

这样,环境就搭建起来了。


通过以上的步骤,共享开发环境的流程就跑起来了。剩下的只需要一个开发者打造一个统一的box文件,在团队内部分发,就可以达成一致环境。效率刚刚的。

这里补充一下遇到的坑:
1. vb中的共享文件夹读写性能很差(可能是宿主or虚拟机内部的1/100),还有一些bug(cnpm跑better-npm-run汇报错),能不用尽量不用,可以考虑使用IDE的auto_upload;
2. 遇到【Failed to create the host-only adapter】试试重装vb;

想起来再补充。
At last,致谢曾经的BB技术团队。

你可能感兴趣的:(code&project,virtualbox,vagrant,共享开发环境)