Vagrant 是virtualBox的命令行管理工具。
以前在mac平台我会用mamp pro 作为php的开发环境,但是非正版毕竟不太好,而且开发环境不贴近实际线上,折腾了一下,使用 vagrant 成功代替mamp pro。

1. 安装vagrant

`brew cask install virtualbox` 安装 virtualbox
`brew cask install vagrant` 安装 vagrant

2. 使用镜像初始化虚拟机

下载地址找个百度盘吧,官方的我实在是没有拖动。。。一点都没动。。。
`vagrant init precise64` 其中 `precise64` 表示你的镜像文件

3. 常用设置

vagrant up  启动虚拟机
vagrant ssh ssh进入虚拟机

配置文件:
需要设置的地方其实很少,也就是网络端口转发和本地其他机器访问的公共ip
config.vm.synced_folder表示本地和虚拟机同步的文件夹。

  config.vm.network "forwarded_port", guest: 80, host: 80
  config.vm.network "forwarded_port", guest: 8888, host: 8888
  config.vm.network "forwarded_port", guest: 888, host: 888
  config.vm.network "public_network", ip: "192.168.1.120"
  config.vm.synced_folder "../data", "/vagrant_data"

在开发中,发现php不能自动生成tpl模板文件,需要设置同步文件夹的权限

config.vm.synced_folder   
   "your_folder"(必须)   //物理机目录,可以是绝对地址或相对地址,相对地址是指相对与vagrant配置文件所在目录
  ,"vm_folder(必须)"    // 挂载到虚拟机上的目录地址
  ,create(boolean)--可选     //默认为false,若配置为true,挂载到虚拟机上的目录若不存在则自动创建
  ,disabled(boolean):--可选   //默认为false,若为true,则禁用该项挂载
  ,owner(string):'www'--可选   //虚拟机系统下文件所有者(确保系统下有该用户,否则会报错),默认为vagrant
  ,group(string):'www'--可选   //虚拟机系统下文件所有组( (确保系统下有该用户组,否则会报错),默认为vagrant
  ,mount_options(array):["dmode=775","fmode=664"]--可选  dmode配置目录权限,fmode配置文件权限  //默认权限777
  ,type(string):--可选     //指定文件共享方式,例如:'nfs',vagrant默认根据系统环境选择最佳的文件共享方式

我的配置:
config.vm.synced_folder "../data", "/vagrant_data",create: true, owner:"www", group: "www"

4. 安装宝塔面板

对我我等弱鸡鸡,宝塔面板还是很方便的。直接安装官方说明安装即可。注意,最后安装成功的ip是外网的ip,我们需要本地地址去访问。

5. 配置网站

宝塔已经可以配置网站了。但是设置了之后,并不能访问。
需要去hosts 里面配置下网络地址,推荐使用SwitchHosts去管理hosts。
eg:

# SwitchHosts!

# vagrant
127.0.0.1 www.test.com
127.0.0.1 www.btadmin.com

这时候就可以用www.test.com访问测试网站,用www.btadmin.com访问宝塔管理页面(需要在宝塔中配置)。