最近玩了一下Laravel Homestead,发现不少朋友在安装使用的过程都或多或少遇到一些个坑。把这过程和我遇到的坑做一个记录。希望对大家有帮助;
我的安装环境是:win10 x64 home版
配合使用cmder完整版
安装最新的 Laravel/homestead (当前应该是3.0.0)
安装的过程
总的过程和Laravel5.5的官方文档一样:
1、安装最新版的VirtualBox(我是x64的,所以下x64版本):virtualbox下载
Win10下安装VirtualBox完全没有难度,只有一个地方需要注意,就是否让Virtualbox关联相关文件,默认是选中的,可以不用选,不然可能会影响win10下双击打开.vhd文件。如果你没有用过.vhd文件,可以不管,全默认安装下去即可。
2、安装Vagrant 最新版(当前是2.0最新):Vagrantup下载
安装Vagrant一样没有难度,默认安装,装完最后重启一下,点确认重启前请一定先保存当前电脑没保存的工作。
3、通过Vagrant 下载Laravel/Homestead的box镜像 ( 第一个坑 )
官方文档的命令是,win10也是直接在cmd窗口输入:vagrant box add laravel/homestead
按官网以咱大局域网的速度,15个小时下不完,保不准中间还会断,建议还是用下载工具直接把包下到本地吧。下载地址:vagrant homestead virtualbox 版 3.0
这个下载地址是在执行:vagrant box add laravel/homestead 后选择这个命令时揭示的4、在下载这个包后,可以再win10的cmd 窗口:
vagrant box add laravel/homestead d:/virtualbox.box
注意这个d:/virtualbox.box的对应实际路径,无意外的话就很顺利的安装完成,在cmd窗口输入:
vargrant box list
可以看到:laravel/homestead (virtualbox, 0),说明成功了。先别开心,才成功了一步。5、开始下载安装homestead(第二个坑)
首先,homestead这个目录可以自己决定放哪,比如我放在D:\VirtualBox\Homestead
在CMD中进到D:\VirtualBox就可以了,不要再建Homestead目录,DOS命令如下:
d:
cd D:\VirtualBox
git clone https://github.com/laravel/homestead.git Homestead
执行成功就会看到:Homestead目录被自动创建了,文件都下好了。然后继续在这个目录下dos:
init.bat
完成初始化,这个坑点在于:homestead目录可以自己定,而且还要要先安装git工具,不然执行不了。其实,不装也git可以,直接去下载包来解压到这目录也行
配置 Homestead
1、配置共享文件夹
用文本编辑器打开D:\VirtualBox\Homestead下的: Homestead.yaml yy (如果没有,说明你没有成功执行init.bat)
找到里边的:
folders:
-map:~/Code
to:/home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/code
改成:
folders:
- map: D:/web/Laravel
to: /home/laravel
type: "nfs"
sites:
- map: homestead.app
to: /home/laravel/public
注意前面的空格,简书的编辑器过滤了。原文件中前面是有空格的,不能多不能少。按他原来的空格数。我已经事先把Laravel5.5下载解压到了我的D:/web/Laravel目录下,这段的意思是把D:/web/Laravel虚拟成linux目录/home/laravel,然后在Nginx中创建虚拟主机,绑定域名为homestead.app,绑定到目录是linux的/home/laravel/public ,其实也就是我本地电脑的D:/web/Laravel/public目录。
关于为什么要用NFS方式?
参考:让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题
(第三个坑),Vagrant官方文档说win下不支持nfs共享,但我试了,可以通过安装vagrant-winnfsd这个插件来实现,CMD窗口输入执行:
vagrant plugin install vagrant-winnfsd
会自动安装好所需的插件
(第四个坑),Vargent配置中的IP,在Homestead.yaml下,默认是
ip: "192.168.30.10"
这个ip要改成跟当前主机不同个ip段的,不然可能启动不了。
(第五个坑),配置完好可可以启动了,在DOS窗口:
d:
cd D:\VirtualBox|Homestead
vagrant up
如果成功,基本就没问题了,如果不成,你可能会遇到:
1、提示你没有ssh key
提示代码忘记抓了,大概意思就是没有私有key,要重新生成一下:
ssh-keygen -t rsa -C"your_email@example.com"
如果执行不了,建议下载cmder完整版,里边集成了git工具
参考:http://blog.csdn.net/u014702999/article/details/52779319
2、提示你laravel/homestead还没有安装,又重新给你下载:
大概的提示是:
default:Box'laravel/homestead'could notbefound. Attemptingtofindandinstall...
这个问题太奇怪了,也有解决办法
文件编辑器打开 Homestead/scripts/homestead.rb
config.vm.box_version = settings["version"] ||= ">= 3.0.0"
改为
config.vm.box_version = settings["version"] ||= ">= 0"
保存,就能解决这个问题了
到这,基本我遇到 的坑都解决了。
可以通过浏览器中输入虚拟机的IP来访问到Laravel了。