当前位置 主页 > 服务器问题 > win服务器问题汇总 >
一、资源准备
链接:http://pan.baidu.com/s/1mh7qUBe 密码:p4wx
1. virtualbox.box文件放在C盘根目录上。
2. metadata.json文件放在C盘用户目录上。比如我的是 C:\Users\pc
3. Git-2.9.3-64-bit.exe 下载安装,全部默认就好。
4. vagrant_1.8.5.msi 下载安装。
5. VirtualBox-5.1.4-110228-Win.exe 下载安装。
二、简介
1. 什么是vagrant?
VirtualBox相信很多人都用过,它是一个虚拟化软件,用来在我们的电脑上虚拟出一电脑来,和 VMware Workstation, kvm, xen等是一类东西(专业点的说法叫Hypervisor),不过它提供易用的界面(VMware也有),对各平台的支持(Linux, Win, Mac),又非常的轻量,最关键的free呀,所以使用非常广泛。
我们平时使用VirtualBox最常见的情况就是,自己电脑是个Win,想跑个Linux,或者电脑是个Linux,要跑win上网银啊,QQ什么的 win only之类的,虽然有wine这样的东东,可以在Linux下跑win下的软件,但有个win系统稳定性不更好么,并且现在的电脑配置,完全不用担心虚拟机消耗内存CPU什么的,你不用那才是浪费呢,何况VirtualBox这么轻量。个人体验,弄个xp虚拟机跑QQ资源消耗比chrome或者ff登webQQ要少,可恶的用了多少js。。。
对天天码代码的苦逼程序员来说,VirtualBox就不能是简简单单的挂个Q这么用了,程序员搞最多的就是码代码了,可能做很多个项目,公司里搞java的,php的,自己回家再玩个python什么的,想体验下新版本的mongodb或者nginx,Emacs或者vim的配置啦,保不准哪个项目前个版本的数据库是mysql,下个版本用了postgresql, 这么多东西全都搞在一起,装在一个电脑上,肯定会被这各种配置环境搞的晕晕的,烦不胜烦。
怎么办呢,最好是每个项目都有一个干净的开发环境,只为这个项目,可是我们不可能为每一个项目配一个电脑吧,有了,虚拟机,给每一个项目配一个虚拟机,开发A的时候就启A的虚拟机,这样各个开发环境互相独立,干干净净。还有一个问题,我们的项目有多个开发人员,如何保障大家的开发环境都一样呢,总不能每个人都一个个点击鼠标,填写配置参数,建好后上支一个个软件安装吧,这太麻烦了,太不geek了。我们想要的是,环境只配置一遍,然后可以把这个环境打包deliver给别人,别人拿到后,直接启起来就可以用。那有没有这样的东西呢,肯定是有的,Vagrant,它就是用来干这个的。
2.什么是homestead?
homestead就上面灰色标注laravel官方打包给我们使用的环境,也就是资源准备里的第一个文件virtualbox.box。它包含以下东西:
Ubuntu 16.04 Git PHP 7.0 Nginx MySQL MariaDB Sqlite3 Postgres Composer Node (With PM2, Bower, Grunt, and Gulp) Redis Memcached Beanstalkd
三、安装步骤
Git bash 下
1. 输入 vagrant box add metadata.json
2. 输入 git clone https://github.com/laravel/homestead.git Homestead
3. 输入 bash init.sh
这时你的用户目录下会多了一个 .homestead 文件夹,里面有一个 Homestead.yaml 文件,这是homestead配置文件,我们日常开发中经常会用到的。现在对这个文件进行编辑
--- #虚拟机的ip地址 ip: "192.168.10.10" #分配给虚拟的内存 memory: 2048 #cpu数 cpus: 2 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa #设置主机与虚拟机的共享文件夹 folders: #主机 - map: ~/Code/test #虚拟机 to: /home/vagrant/Code/test #设置域名与访问地址 sites: - map: test.app to: /home/vagrant/Code/test/public #数据库 databases: - homestead # blackfire: # - id: foo # token: bar # client-id: foo # client-token: bar # ports: # - send: 50000 # to: 5000 # - send: 7777 # to: 777 # protocol: udp