纪念踩坑Homestead的时光

1 1920
戴举龙 2017-05-19
共发表 5 篇文章

Laravel官方提供了一个本地开发环境,名曰“Homestead”,这是一个集成了所有使用Laravel框架开发应用时的常用组件,当然也可以用来做别的PHP方面的开发,毕竟本质就是一个Ubuntu虚拟机安装了各种组件。

偶尔在群里看到开发环境之争,大体集中在使用Homestead还是其他的集成环境(如Wamp,Mamp Pro等)。我一直是用集成环境的,但看别人争得多了,也想试一下Homestead是个什么体验。

第一印象:崩溃!这是在Windows上另我想拍桌子怒吼的事件。在安装过程中,各种跳进去爬不上来的大坑,曾经让我放弃Homestead。后来死不甘心的我又拿自己的Mac作最后一博,也有坑,但爬上来了,然后又回到Windows,在拍了几次键盘并摔了几次鼠标之后,也运行起来了。

第二印象:不错。是真的不错,突然感觉我的电脑主机上面可以去掉那些个开发环境了,只需要留下一个IDE就够了。哪怕Homestead虚拟机自带的组件不够,也可以自己装,版本太低,也可以自己升级,毕竟只是个Ubuntu虚拟机。最后安利了一下同事,也是一脸的小激动。

废话说多了,总归要聊点正经事,主要是纪念一下我崩溃的心路历程。坑多得记不清了,只记得走过去的路是什么样子,尤其是Windows。

以下是顺利装好并运行Homestead的路,为了忘却的纪念。

如果用的是Windows,请安装一个支持SSH的命令行客户端,并在后续操作中都使用此命令行客户端,如果实在不行,装个Git,它自带。

1、安装Vagrant和Virtualbox,没什么可说的,不管是Windows还是Mac(因为穷,没有Linux电脑),直接按向导装就是了。

2、下载box,虽然Vagrant是可以自动下载的,但是因为众所周知的原因,会等死人的,所以直接下载了。然后执行命令:

vagrant box add laravel/homestead 下载的box文件路径

比文档里的命令多了最后一个参数,就是指定本地文件的,毕竟下载回来了。

3、到github上拿下homestead,不管是git clone还是直接download zip,反正是拿到了,并放好在某个目录下。

4、运行init.sh(非Windows)或init.bat(Windows)进行初始化。

5、检查用户目录下有没有.ssh目录,且下面有没有id_rsa和id_rsa.pub这两个文件,如果没有,请打开命令行,执行ssh-keygen进行生成。

6、命令行进入homestead目录,然后执行命令:

vagrant up

7、大坑。如果太上老君保佑,你可能直接就行了,但八成你会发现,vagrant还是在远程下载box,如果愿意等,你就等吧,当然我不愿意,因为我毕竟明明已经在前面添加好box了啊,怎么还是要远程下载。这个坑,主要是add box时的因为版本问题造成的。我当时下载的box版本是2.1.0,但是在用户目录的.vagrant.d目录下,版本却是0。别问我为什么,我也不知道,但我只是查到了怎么去填坑。

(1)到“C:\Users\Administrator.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead”或“~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead”目录下,会发现只有一个“0”的目录,把它改成实际下载的box版本,我的是“2.1.0”。

(2)还在这个目录下,增加一个“metadata_url”的文件,内容是: https://atlas.hashicorp.com/laravel/homestead ,没错,就是一个url,注意前后不要有空格。 再重复第6步操作,应该就能正常运行起虚拟机了。

至于Homestead.yaml怎么配置和vagrant的几个常用命令,不在此讨论范围。可能我会慢慢减少使用本地集成环境了,但不会完全取消,除非我只需要一个版本的PHP环境来工作。

谨以此纪念踩坑的几日时光。

  • 戴举龙
    2020-10-11 09:28:59

    回复
回复 @abc
登录后才可发表评论 | 登录