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

这一篇教你一个debug homestead的神技。 smiling_imp

默认我们执行vagrant up的时候,是一路这样的界面:

vagrant up interface

通常如果最后显示的是这两行代码,那么我们就可以放心了(thanks God,可算没有报错 sparkling_heart ):

==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

但是,有时候,可能每个月总有那么几天背的吧——启动居然失败了?!WTF,昨天还用的好好的呢?!难道是隔壁老王昨天给我做了手脚?!什么情况? scream

比如这样:

timed out

傻眼了吧,这怎么解决?类似的情况单纯从这里就让人无从下手了,我们并不知道背后到底发生了什么,也就是背后的ubuntu虚拟机在启动或者与主机连接的过程中怎么了,那么这个时候我们就最好开启一下启动过程中的图形界面了——在我们vagrant up后,到了启动虚拟机的那一步,能够自动通过virtualbox开启虚拟机的图形界面,好让我们看到整个的ubuntu系统启动过程。

怎么做呢?在你的homestead文件夹下有个Vagrantfile,打开它,加入下面几行:

config.vm.provider "virtualbox" do |vb|
    vb.gui = true
end

注意是加到下面这个大的pair中间,这中间的这些都是用来具体配置vagrant的

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
	//加在这之间
end

这样了以后,当你下次vagrant up的时候,具体来讲是执行到下面这一步的时候:

==> default: Waiting for machine to boot. This may take a few minutes...

virtualbox就会自动打开ubuntu虚拟机的启动界面,你就可以具体看到系统启动的每一个步骤,如果期间哪一步出错了,你也可以相应地去debug。

实际上,开启gui界面,也是我们debug homestead启动过程中很多莫名问题的很关键的一步,很多ubuntu系统的问题,不打开这个我们无法明确问题所在。后续的篇章中,我们会陆续介绍几个在开启了gui以后才能排除掉的常见问题。

好了,快去揭开homestead的面纱吧~ smirk