做Web开发免不了要在本地搭建好开发环境,其实Mac OS X本身就是基于UNIX的,配合Homebrew几条命令就能搭建PHP+MySql+Nginx的开发环境。而且Mac OS X已经自带PHP和Apache,只需要简单的配置即可运行PHP站点。

但是如果你跟我一样,有点”系统洁癖”,而且又有点爱折腾,那么强烈推荐使用Vagrant

1.下载安装 VirtualBox

下载地址:https://www.virtualbox.org/wiki/Downloads

2.安装 Vagrant

下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。

3.下载系统镜像

在init vagrant时可以直接添加系统镜像,考虑到国内的网速情况,建议先使用迅雷等下载工具先下载好系统镜像。 官方封装好的基础镜像:

4.添加镜像到 Vagrant

假设我们下载的镜像存放路径是 ~/Download/precise64.box,在终端里输入:

$ vagrant box add ubuntu12_04 ~/Download/precise64.box ubuntu12_04是我们给这个box取的名字,你完全可以根据你的习惯来命名。 ~/Download/precise64.box 则是我们上一步下载的系统镜像所在的路径。

5.初始化开发环境

创建一个开发目录(比如:~/vagrant),你也可以使用已有的目录,切换到开发目录里,用 ubuntu12_04 镜像初始化当前目录的环境:

$ cd ~/vagrant  # 切换目录
$ vagrant init ubuntu12_04  # 初始化

初始化完成之后,就会在当前目录生成Vagrantfile,这就是vagrant的配置文件,可以修改这个配置文件进行一些个性化的定制,比如网络连接方式,共享的目录等。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu_12_04" #定义此虚拟机是从哪个box生成,名字就是我们box add时的名字
  config.vm.network "private_network", ip: "192.168.110.100" #私有网络配置
  config.vm.synced_folder ".", "/vagrant"  # 将当前目录映射到虚拟机上的/vagrant 目录
  #awesome configuration goes here...
end

6.启动vagrant并通过SSH连接

上一步初试化完成之后,可以先修改Vagrantfile,也可以使用默认配置,然后启动vagrant。 $ vagrant up # 启动环境

你会看到终端显示了启动过程,启动完成后,我们就可以用 SSH 登录虚拟机了。然后就像登录到了一台VPS或服务器,进行环境的配置。

$ vagrant ssh  # SSH 登录
# install php nginx mysql ...

当配置好相关的环境之后,就可以将当前配置好的虚拟机打包成box,存盘备用,也可以分发给Team的其他同事,统一开发环境。

vagrant package --output NAME --vagrantfile FILE
可选参数:
--output NAME : (可选)设置通过NAME来指定输出的文件名
--vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中

关闭Vagrant

我从来没有主动去关闭Vagrant,一般就直接随系统关掉了。 Vagrant有3种关闭方法。

  • vagrant suspend

将虚拟机挂起,虚拟机内存都保存到硬盘上,下次可以快速恢复。

  • vagrant halt

将虚拟机关闭,虚拟机内存释放,下次启动要慢一点。

  • vagrant destroy

将虚拟机删除,所有变更都丢失,下次启动要重新克隆一个 Vagrant box。 无论那种方式关闭,要再启动 Vagrant 都是用 vagrant up 命令。