千里之行始于足下,但很多对编程报以兴趣的初学者卡在刚开始的环境配置就失去兴趣了。这很可惜,因为编程并没有你想象那样难。本教程带你绕过环境配置的沟沟坎坎,不出一个小时就能搞定环境配置,让你的才华不会被埋没。
为什么能辣么方便?因为本教程思路是帮你安装一台虚拟机,这台虚拟机什么都有,你虚拟装好了其他一切就装好了。
最后,我们还有�视频教程
工具包下载地址:这里
包内有以下几个工具(针对Windows)
- Cygwin64 :Windos 下的Linux环境模拟器
- VirtualBox:虚拟机
- Vagrant: 虚拟机管理工具
- Homestead.box:Laravel官方针对PHP开发配置的ubuntu虚拟机镜像,预装了php5.6, Nignx,Node,redis等等。
- Homestead.zip: Laravel官方定制的Vagrant配置文件
Laravel是什么鬼?Laravel是目前最流行的PHP框架。下图最长的那个就是Laravel:
框架又是什么鬼?框架可以理解为网站的雏形。为了方便开发,大牛们把做网站需要的核心代码都帮你写好了,文件怎么放置也帮你规划好了,安全性问题也帮你考虑了。按照大牛给的套路,你可以很轻松的做出一个较为复杂的网站,也方便团队日后的维护。
我们开始进入正题
1.Windows 模拟Linux环境:
这样做是为了统一开发体验,因为Windos下执行的是DOS命令,但对于习惯于Mac和Linux开发的童鞋来说有点不顺手。做开发的应该对自己好一点。
双击Setup-x86_64.exe 开始安装,在安装的过程中可以选着国内的镜像源http://mirror.163.com
记得安装插件ssh
,这样在模拟的Linux环境中就可以执行ssh
命令了。
Cygwin默认在C盘cygwin64
在这个文件中模拟了一个Linux环境,这个文件夹就是你Linux的根目录。
2.SSH创建密钥?
SSH虽然不能吃,但你可以用SSH登陆远程服务器。我们将用它来登陆虚拟机SSH。因此你需要先创建一对密钥,执行命令
ssh-keygen -t rsa -C "you@homestead"
过程中会问你一些问题,不用管它一路回车就好了。
然后在你的家里可以看到多了个.ssh的文件夹里面,里面装了你的私钥id_rsa和公钥id_rsa.pub两个文件。
私钥是自己保管的,公钥是给“别人”的。打个不完全恰当的比方,私钥像门锁,公钥就像钥匙。门锁只有一个,是装在自家大门上的,我们也不会把它别人,但我们可以配好多把钥匙交给我们信任的家人。于此类似,我们会把公钥交给我们信任的远程服务器。当我们在链接服务器的时候,服务器会先拿着我们预先给他的公钥与我们自己保管私钥做匹配,如果私钥和公钥匹配上了就可以证明这个人确实是我。
拓展:关于ssh其他用法可以看这篇文章
2.Vagrant 安装
安装Vagrant之前,需要先装VirtualBox虚拟机,一路下一步就是了。
装好后,我们可以装Vagrant了。
装好会重启,重启完毕后我们再到Cygwin中执行命令
vagrant
看看有什么反应:
对,有很强烈的反应。这说明安装成功了!
接下来我们需要添加镜像文件,我们将下载好的
homestead_0.2.0.box
和Homestead.zip
放到我的"家中"(c:/cygwin64/home/xiongyongxin/)解压Homestead.zip到Homestead文件夹中。回到命令窗口,执行这面这段命令:
vagrant box add laravel/homestead ./homestead_0.2.0.box
注意:./homestead_0.2.0.box
这段要根据放置文件地址来定。
速度很快,一会就好。
现在我们进入到刚解压好的Homestead文件夹中:
cd Homestead
执行命令,看看反应
vagrant up
结果报错了,没关系,我们需要去配置一下Homestead.yaml
。用编辑器打开它:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Sites/plantbabe.com/Code
to: /home/vagrant/Code
sites:
- map: plantbabe.cc
to: /home/vagrant/Code/v0.plantbabe.com/public
hhvm: true
sites:
- map: xiye.cc
to: /home/vagrant/Code/xiye.plantbabe.com/public
variables:
- key: APP_ENV
value: local
authorize指定了我们公钥的地址,当启动虚拟机的时候,这台虚拟机就获得了我们的公钥。
folders 指定了文件夹的映射关系,我们先去自己的家里创建一个Code文件夹,用来与Vagrant家中的Code文件夹实现共享。把上面的源文件的代码改为:
folders:
- map: ~/Code
to: /home/vagrant/Code
map对应的是本地的真实地址,to对应的是虚拟机中的地址。
sites指定了站点的映射关系,就是我们在主机访问域名的时候,服务器会先执行那个目录的文件。因为Laravel把网站的入口文件放置在public下面,我们因此在站点指定到public
下面:
sites:
- map: yiban.cc
to: /home/vagrant/Code/yiban.cc/public
hhvm: true
vagrant 支持多站点的配置,我们现在只有一个站点,所以另外一个可以删除掉。和上面类似,map对应的是浏览器的访问域名;to对应虚拟机中的地址。如果需要开启hhvm,设置为true,在开发环境里面hhvm没有什么用。如果要配置多站点的话请把这行去掉。
最后这个文件变成这样了。
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: yiban.cc
to: /home/vagrant/Code/yiban.cc/public
variables:
- key: APP_ENV
value: local
修改好后,我们在该目录下再次执行:
vagrant up
看到一长串,说明启动成功了。
不信?那么我们可以到Virtual Box看看,一台虚拟机正在跑。
进入虚拟机内部:
vagrant ssh
如果你的ssh生成的密钥地址正确的话,很快就能进去。
3.链接数据库:
链接数据库windows 上可以用navicat。在Mac上面可以用Sequel pro。
主机域名用localhost,端口:33060,用户名:homestead,密码:secret
点击确定就可以连上了。
4.创建Laravel项目
现在我们可以开始创建一个项目:
去这里下载Laravel一件安装包。解压后将代码复制到Code下面的yiban.cc文件夹中,如图:
在浏览器地址栏上输入
192.168.10.10
,我们就可以看到页面有东西出来了。
这个ip地址来自之前我们配置的Homestead.yaml 文件。但这样不够优雅,也可能会带来一些其他问题。比如一台服务器上配置多个站点域名,用同一个IP就会出错了。因此,我需要在本地绑定一下hosts,打开C盘,编辑文件Windows/System32/drivers/etc/hosts
添加上
192.168.10.10 yiban.cc
保存好后,重启浏览器,用浏览器访问yiban.cc
,于是刚刚那个页面可以用域名访问了。如果有问题,清理一下缓存再试一试。
Mac 系统在/etc/hosts
中,修改的话要管理操作权限。
hosts就好像一个存在电脑上电话号码本,存了一些网站域名对应的IP。浏览器去访问域名的时候,先会在本地的号码本上查看是否有记录,如果有的话就直接拨电话了(访问该IP)了,所以当我们去访问yiban.cc时候实际上访问的192.168.10.10。
编辑并保存hosts文件后,我们重启浏览器后访问yiban.cc。不出意外的话,我们可以看到刚刚的那个网站。
配置多个站点
和上面一样,我们只要再在Homestead.yaml添加一个sites的配置就就好了,
sites:
- map: xiye.cc
to: /home/vagrant/Code/xiye/public
然后执行
vagrant provision
这样虚拟机就会载入新的配置。
结语
日常使用的时候,记住下面2个命令就好了:
- 开启虚拟机:cd 到Homestead文件夹执行命令
休眠
vagrant suspend
重启
vagrant resume
- 进入虚拟机:
vagrant ssh
链接数据库用Navicat 等管理软件直接连接就好了
浏览器访问输入绑定的域名:yiban.cc
是不是很简单?什么,还是不懂?
看视频吧!�视频教程
参考资料
http://www.golaravel.com/laravel/docs/4.2/homestead/
http://segmentfault.com/a/1190000000264347