Homestead 安装问题汇总

大部分情况下,Homestead 的安装是非常简单的,我就基本上没遇到过问题。然而如果你遇到 vagrant up 后卡在 SSH auth method: private key 的情况,你可以按照以下清单进行排查。

这里假设你按照 这个课程 安装,使用的是 VirtualBox。

卡顿大概是这样的:

E:\Program Files\Homestead>vagrant up
.
.
.
homestead: SSH address: 127.0.0.1:2222
homestead: SSH username: vagrant
homestead: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
.
.
.

1. 检查 SSH Key 填写是否正确?

实现 SSH 免密码登录的是 authorize 选项:

authorize: ~/.ssh/id_rsa.pub

请确定 ~/.ssh/id_rsa.pub 文件是否存在,否知按照这里从新 生成一遍 SSH Key

2. 重新生成 insecure_private_key

在 Homestead 文件夹下执行:

> vagrant ssh-config

会输出:

Host homestead-7
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/Homestead/.vagrant/machines/homestead-7/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
  ForwardAgent yes

移除 IdentityFile 选项里的文件 D:/Homestead/.vagrant/machines/homestead-7/virtualbox/private_key

重新运行 vagrant up(vagrant 会生成一个新 insecure_private_key 文件)。

这里要感谢 @wwhu668 的 分享

3. 修改 VirtualBox 虚拟机的网卡

  1. 在 VirtualBox 软件界面里确保 homestead-7虚拟机完全关机;
  2. 右键 homestead-7 虚拟机,选择『设置』;
  3. 选择『网络』;
  4. 在 'Adapter 1' 栏目下,展开『高级选项』;
  5. 打钩『连接网线』;
  6. 保存设置,vagrant up --provision
  7. 然后 vagrant reload 重新加载虚拟机。

4. 在 BIOS 中开启虚拟化技术支持

进入 BOIS,将 intel virtual technology 设置为 enable。

参考:

  1. 在BIOS中开启虚拟化技术
  2. 启动BIOS的虚拟化设置 | 开启CPU虚拟化支持

xx. 重来一遍

将 VirtualBox ,Vagrant 和 Homestead 完全删除。重新下载 最新版 的所有软件,然后重头到尾再安装一遍。

如果你是按照 《Laravel 教程 - Web 开发实战入门》 的话,请仔细按照环境部署章节下载『指定的、定制的』软件,然后重新安装一遍。

xxx. 换个电脑

Homestead 安装不成功有些时候是系统和硬件导致的,家里有多台电脑的话,可以换着试试看。考虑重新买电脑的同学,如果你是下定决心要以编程为职业的,推荐 Mac OS 系统的电脑。

预算可以的话 RMBP ,预算较少也可以考虑 Mac Mini