【Homestead Master】系列是Laravel底层核心技术实战揭秘这一课程里的第一章,因为考虑到该章内容学员们可能要经常来回查阅,同时也为了提高课程更新速度,所以这一章以文字的形式发布在此。

之前我们提到了使用vagrant share来分享你的本地站点,前提是你的homestead里只有一个站点,或者说其他站点都注释掉。如果嫌这样麻烦,想着说随时分享你的特定开发站点,比如说我们执行一个share taskmanager.app就能分享我们的taskmanager站点,于此同时不影响其他站点。这个也是可以的,homestead已经提前为我们想到了这一点,实际上我们vagrant ssh进入虚拟机,然后执行share taskmanager.app就可以实现这样的效果。

但是,这个也是有前提的,就是你的homestead版本得是5.4的,与之对应的homestead vagrant box的版本得是2.0以上的,相应的离线包呢可以点这个链接密码: 8brx

更新homestead及相应box的注意事项(为避免入坑,建议通读下面的步骤,理解了以后再实际操作):

  1. 如果你的网络够好,可以直接执行vagrant box update来更新box
  2. 如果你要使用上面的离线安装包,记得添加box之前先导出你之前虚拟机里的数据,因为添加了新的box之后,你需要vagrant destroy以后再up才能用到这个新的box
  3. 只是更新box还不行,还需要更新homestead,说白了就是更新你的homestead文件夹,离线文件里有一个打包好的,你也可以直接git clone //github.com/laravel/homestead.git Homestead
  4. 在更新homestead文件夹之前,记得将以前的这个文件夹重命名一下以实现备份,因为你很可能需要之前的yaml文件,或者after.sh文件,或者之前那个虚拟机的ID文件

有了最新版的homestead及box了以后,就可以vagrant ssh进入虚拟机,然后执行share taskmanager.app

ngrok by @inconshreveable                                                                                              (Ctrl+C to quit)

Session Status                online
Update                        update available (version 2.2.4, Ctrl-U to update)
Version                       2.2.3
Region                        United States (us)
Web Interface                 //127.0.0.1:4040
Forwarding                    //0ac54ff9.ngrok.io -> localhost:80
Forwarding                    //0ac54ff9.ngrok.io -> localhost:80

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

然后就可以看到这样的一个ngrok界面,ngrok是一个内网转发的开源程序,官网在此,更具体的大家可以自行去探索。

在上面的界面里我们可以看到,它为我们分配了两个URL,一个http的,一个https协议的,具体路径都是0ac54ff9.ngrok.io, Region(服务器地区)默认是us, 同时下方的Connections列表是用来显示当前访问这个地址的访问记录,如果此时有人访问了你的共享站点,那么就会多一条类似记录:

Connections                   ttl     opn     rt1     rt5     p50     p90
																					0       1       0.00    0.00    0.00    0.00

HTTP Requests
-------------

GET /favicon.ico               200 OK
GET /login                     200 OK
GET /                          302 Found

此时我们就知道有人访问了我们的根目录/,然后被重定向(302)到了login页面。

当然我们也可以做一些自定义,比如说share taskmanager.app -region=ap,这样就选择了ngrok的服务器地区为亚太地区(Asia Pacific),预期这样网站的访问速度会快一些。

还有一个参数是-subdomain,用来自定义你的子域名,比如自定义成pilishen.ngrok.io,但这个是付费服务。

好了,是vagrant share,还是vagrant sshshare, It's Your Call!