做Web开发免不了要在本地搭建好开发环境,其实Mac OS X本身就是基于UNIX的,配合Homebrew几条命令就能搭建PHP+MySql+Nginx的开发环境。而且Mac OS X已经自带PHP和Apache,只需要简单的配置即可运行PHP站点。
但是如果你跟我一样,有点”系统洁癖”,而且又有点爱折腾,那么强烈推荐使用Vagrant。
1.下载安装 VirtualBox
2.安装 Vagrant
下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。
3.下载系统镜像
在init vagrant时可以直接添加系统镜像,考虑到国内的网速情况,建议先使用迅雷等下载工具先下载好系统镜像。
官方封装好的基础镜像:
- Ubuntu precise(12.04)32 VirtualBox: http://files.vagrantup.com/precise32.box
- Ubuntu precise(12.04)64 VirtualBox: http://files.vagrantup.com/precise64.box
另外这里列出了其他的一些镜像,你可以根据你服务器的环境来选择。 http://www.vagrantbox.es/
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 命令。