由于php的一些扩展只有在linux下面才能用,就算是Cygwin下面也不行,例如pcntl。所以就决定安装一个linux虚拟机来作为开发环境,顺带找到了另外一个东西:Vagrant。Vagrant作为一款虚拟机环境统一配置管理工具,后端可以是VirtualBox,VMWare,AWS。这样当运行环境配置完了可以方便的部署在其他机器上或给予其他开发人员,实现配置一次,到处运行的功能。当使用Vagrant管理VirtualBox是运行在命令行下面的,而不需要打开界面。
首先,安装VirtualBox,地址。
然后,安装Vagrant,地址。安装完成后,将Vagrant的bin目录添加到系统的环境变量Path里面。
再然后,下载做好的虚拟机镜像,地址。我这里下载的是Ubuntu precise 64 VirtualBox,对应链接:http://files.vagrantup.com/precise64.box。这个镜像的下载速度还不错,centos的就不怎么样了,但还是建议先下载到本地硬盘在加载进来。
这时候应该先为这个虚拟机(Ubuntu precise 64)建一个目录,以便初始化和管理这个虚拟机主机。如果有多个虚拟机的话,就分别建立不同的目录来初始化。比如:E:\project\vagrant\dev。然后就在这个目录下面初始化这个镜像。
E:\project\vagrant\dev>vagrant box add Ubuntu12.04x64 "file:///f:\box\precise64.box"
注意,file后面应该是三个/而不是两个。add后面跟的是这个虚拟机的名称,也可以用base自动识别。
打开对应目录下面的配置文件Vagrantfile,配置虚拟机的ip和共享目录。
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "E:/wamp/www", "/home/vagrant/www" #将前者映射到后者
初始化并启动:
E:\project\vagrant\dev>vagrant init Ubuntu12.04x64
E:\project\vagrant\dev>vagrant up
然后可以通过ssh连接上去管理了,这里使用Cygwin下面的ssh客户端,默认用户和密码都是vagrant。
sudo apt-get update #先更新下软件包,要不然有的可能会装不上
注意启动和连接虚拟机都需要切换到该虚拟机所在开发目录。还有一些其他的命令。
vagrant init # 初始化
vagrant up # 启动虚拟机
vagrant halt # 关闭虚拟机
vagrant reload # 重启虚拟机
vagrant ssh # SSH 至虚拟机
vagrant status # 查看虚拟机运行状态
vagrant destroy # 销毁当前虚拟机
vagrant package # 导出当前虚拟机
这里有别人推荐的一个小软件win-sshfs,可以将Linux的目录直接mount到Windows系统上作为一个根盘符。注意:这是个32位软件,可能会安装不成功,需要采用兼容模式。
然后就可以在我的电脑里面像本地文件一样管理。
参考链接:
使用 Vagrant 打造跨平台开发环境
使用vagrant和win Sshfs支持openstack开发
Vagrant安装配置
Windows 7使用Vagrant构建虚拟开发环境
Vagrant+VirtualBox搭建统一开发环境