引言:
最近开始学习laravel框架,了解到有个laravel homestead的box,开发起来非常方便快捷,于是就准备开始配置homestead虚拟开发环境了
什么是Homestead
要想学会使用一款工具,那么必须要先学习这款工具到底能做什么,否则学习就是没有意义的,根据官方文档是行的解释: Laravel Homestead 是一个官方的、预封装的Vagrant“箱子”,它提供给你一个奇妙的开发环境而不需要你在本机上安装PHP、HHVM、web服务器和其它的服务器软件。不用再担心搞乱你的操作系统!Vagrant箱子是完全可支配的。如果出现故障,你可以在几分种内完成销毁和重建箱子!
于是按照文档上的安装步骤,开始进行安装,理论上来说,应该都能轻松的安装上homestead,但是我想说的是,文档并不会适用于所有的场景。于是我踩了许多坑。
准备工作
在安装Laravel Homestead之前,要先准备两个软件,
<a target="_blank" src="http://www.vagrantup.com/downloads.html">vagrant</a>,Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,
<a target="_blank" src="https://www.virtualbox.org/wiki/Downloads">virtualBox</a>,VirtualBox 是一款开源虚拟机软件。
Homestead就是vagrant box,而vagrant box 必须配合vagrant 和virtualBox一起,才能一起工作,所以准备工作必须不能少啊。
安装vagrant&virtualBox
安装软件很简单,在windows环境下,这两个软件都是傻瓜式一键安装的,各种下一步即可
添加homestead box
官方文档中有介绍,安装hometead需要添加homestead的box,命令行下使用命令
vagrant box add laravel/homestead
然后只要花费一些时间,就能添加好homestead的box了,但是想象和现实总是有很大的差距,我添加的时候,看到的是这样的:
我大天朝的网络就是这样,不仅有长城那么长的墙,还有巨大的传输时延,访问国外的站点都是如履薄冰,下载大文件基本和天方夜谭是差不多形式的,那么接下来就是寻找解决方案了
解决方案:
一、配置VPN代理,这个东西免费的不好使,收费的用不起,pass
二、晚上睡觉前,下载个离线的箱子,然后通过添加本地盒子的形式在添加homestead(这个办法非常适合我这种又懒又穷的人),下载离线箱子的url可以命令行中找到,也就是上图,Downloading后面的url
https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.5.0/providers/virtualbox.box,
我整理了一下前辈的心得,根据他们的经历,使用迅雷或者其他什么支持断点续传的下载工具,下载的文件有损坏,但是我没有去验证,我是使用火狐浏览器自带的下载插件进行下载的,没有遇到前辈们所说的那些问题。
下载之后,我得到了一个叫做hc-download的文件,开始我还觉得我下载错了文件,怎么叫hc-download而不是叫做homestead.box,事实证明确实就是叫hc-download,然后运行命令
vagrant box add laravel/homestead hc-download
(ps:有些前辈说要把文件hc-download改名为homestead.box才能添加成功,但是我直接就添加成功了,并且根据我对计算机文件的理解,文件的格式不应该由后缀名来决定的,所以改名应该不是必须的)
获取Homestead命令行工具
接下来需要获取Homestead命令行工具,这里面包含了homestead的一些配置,在官方文档上的介绍,我们可以通过composer(Composer 是 PHP5以上 的一个依赖管理工具)来获得,执行命令(在这之前,必须已经安装了composer工具才能使用)
composer global require "laravel/homestead=~2.0"
但是我感觉composer下载起来比较慢,于是还有另外一种更快的方法,通过下载homestead托管在github的仓库直接克隆即可,不过需要安装git客户端
git clone https://github.com/laravel/homestead.git
如果既不想安装git,也不想安装composer,那么直接找一个下载过的前辈,让他用邮箱发一份也是完全没有问题的,我通过git克隆下载的homestead是这些文件
如果是通过composer安装的,目录下还会有一个vendor的目录,然后就需要初始化homestead的配置了
windows命令下执行init.bat,或者直接到这个目录,鼠标点击init.bat也是OK的,如果用的是git,那么就需要执行./init.sh了
执行完之后,在我的C:\Users\Administrator目录下生成了一个.homestead目录,这个目录下有三个文件
,里面的配置后期可以根据需要手动进行修改
启动homestead
一切准备就绪了,接下来只要在命令下到homestead(上图中init.bat所在的目录),执行命令
vagrant up
然后就能愉快的玩耍。。。了。。。么???
事情还没完呢,执行vagrant up启动的时候,它还是会选择官方的源进行下载和安装,于是一切又回到了原点,但是木有关系,既然它会自动选择官方的源进行box的安装,那么就一定有控制的地方,让它从本地添加的盒子进行安装,于是找到了scripts目录下的homestead.rb文件,打开之后找到
config.vm.box_version = settings["version"] ||= ">= 0.4.0"
这样一行代码,然后在行首加上#号注释掉它之后,重新启动vagrant up,然后终于可以愉快的玩耍了!