Menu
本站点已经完全迁移到 Laravel China 社区,购买过课程的用户请 点击此处登录 ,然后按照迁移指南操作即可。

2.5. 开发环境搭建 - Windows

系统要求

Windows 7 及以上。

步骤简略

接下来让我们按照这几个步骤来完成整个 Laravel 开发环境的安装及配置:

  1. 安装 VirtualBox
  2. 安装 Vagrant
  3. 导入 Homestead Box 虚拟机盒子
  4. 安装 Git
  5. 安装 Homestead 管理脚本
  6. 配置 Homestead.yaml 文件
  7. 启动 Homestead 虚拟机

安装 VirtualBox

VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。

本书撰写时最新的 VirtualBox 版本为 5.1.14,也是本书教程使用的版本,如果你安装的是之后更新的 VirtualBox,那也不会有太大问题,因为软件更新时一般都会对之前的版本进行兼容处理。但我还是建议你使用与我相同的 VirtualBox 版本,以免有歧义,你可以使用迅雷下载 这个链接 或者使用 百度盘下载

注意:如果你安装 VirtualBox 5.1.14 版遇到问题的话,可以到 VirtualBox 官网 下载当前操作系统相对应的安装包进行尝试。

下载完成之后,双击安装包进行安装。

file

之后按照提示操作一步一步进行安装即可。

安装 Vagrant

Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。

本书撰写时最新的 Vagrant 版本为 1.9.0,也是本书教程使用的版本。同样的,我也建议你安装与本书相同的 Vagrant 版本,1.9.0 版本的 Vagrant 可以使用 迅雷下载链接 或者 百度盘下载

注意:如果安装 1.9.0 版本的 Vagrant 出现问题的话,可在 Vagrant 官网 下载当前操作系统相对应最新的安装包进行尝试。

然后一步一步按照默认安装即可。

file

Homestead 介绍

Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。

Homestead 包含了两个东西:

  • Homestead 管理脚本;
  • Homestead Box 虚拟机盒子。

接下来独自说明下。

1. Homestead 管理脚本

Homestead 脚本使用 Ruby 和 Shell 脚本编写而成。原理是对 Vagrantfile 文件做定制。将从 ~/Homestead/Homestead.yaml 读取的配置信息,在 provision 时,解析为 Vagrant 命令并进行对虚拟机的配置。Homestead 脚本的作用在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置,即可完成复杂的任务。以下是几个常用的任务:

  • IP 配置,端口映射;
  • Nginx Site 创建;
  • 数据库创建;
  • 主机文件夹挂载到虚拟机等任务。

所有 Homestead 的版本历史在 此处 可以找到。在本书中,为了提高操作的效率,我们将会使用定制版本的 Homestead。

2. Homestead Box 虚拟机盒子

homestead.box 虚拟机盒子是提前打包好的 Vagrant Box 虚拟机盒子,里面预装了 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。

所有虚拟机盒子版本历史 在此

打不开的用户,下图是截屏:

file

可以看出 Homestead Box 虚拟机盒子有很多版本。不过,如 Homestead 脚本,为了学习的流畅性,我们接下来将会使用定制版本的虚拟机盒子,你不需要太担心版本的事情。

安装和使用 Homestead

接下来,我们会讲解:

  1. 下载和导入 Homestead Box 虚拟机盒子;
  2. 安装 Git ,为下载 Homestead 管理脚本做准备;
  3. 使用 Git 下载 Homestead 管理脚本;

1. 下载和导入 Homestead Box

由于国内的网络环境原因,我们特意为大家定制了适用于国情的 Homestead 安装包,该安装包提供了以下内容:

  • Composer 加速,配置了 Composer 中国全量镜像 支持;
  • 默认集成 Heroku 工具;
  • 默认集成 Yarn,并为 Yarn 加了淘宝镜像的加速;
  • 使用 CNPM 对 NPM 进行加速。

接下来让我们开始进行 Homestead 的安装,首先我们需要下载 Homestead 虚拟机盒子,建议大家使用迅雷离线下载或者其他离线下载方式下载此盒子。

下载后的文件为 lt-homestead-3-0-0-2017082400.zip,请对其进行 zip 解压操作,解压成功后可以看到目录 lt-homestead-3-0-0-2017082400,此目录下包含两个文件:

  • homestead-virtualbox-3.0.0.box(教程定制化过的 Homestead 盒子)
  • metadata.json(盒子的导入配置文件)

在解压目录中 lt-homestead-3-0-0-2017082400 运行以下命令导入 Box:

> vagrant box add metadata.json

注意:请必须解压到 非中文路径,有同学反馈中文路径会出现不可预知问题。

如下图所示:

file

如果你使用的 Windows 系统在安装 Homestead 的时候报错:The box 'laravel/homestead' could not be found or
could not be accessed in the remote catalog.,请下载 MS Visual C++ 2010 x86 Redistributables 并进行安装即可修复。

至此完成 Homestead Vagrant 盒子的导入。

注:导入成功后,lt-homestead-3-0-0-2017082400 文件夹可任意删除。

2. 安装 Git

如果你先前已使用过 Git for Windows 来作为你进行 Laravel 项目开发时的默认命令行工具,则该工具将会默认为你安装好 Git。

使用以下命令来检测是否成功安装:

> git --version
git version 2.12.2.windows.2

file

注:不需要担心你的版本与我不同。

3. 下载 Homestead 管理脚本

因国内网络限制,为方便下载和后续管理脚本的流畅使用,本书中将使用定制版本的 Homestead 脚本,定制版有以下优势:

  • 从国内 coding.net 网站下载,下载速度会比 官方 更快;
  • 对脚本进行修改,移除了每一次 provisioncomposer self-update 的卡顿。

接下来,使用 Git 下载定制版的 Homestead:

> cd ~
> git clone https://git.coding.net/summerblue/homestead.git Homestead

Windows 下,~ 目录代表着 C:\Users\你的用户名,而 ~/Homestead 代表着 C:\Users\你的用户名\Homestead目录,类似:

file

注:我们把 Homestead 放在 ~/Homestead 路径下,为方便后面的讲解,请保持一致。

下载完成之后我们使用命令行进入 Homestead 目录,再使用 Git 检出我们需要的 Homestead 版本:

> cd ~/Homestead
> git checkout v5.4.0

注:为了保证后续讲解的流畅性,请注意版本的一致性,这里我们使用 v5.4.0

接下来我们需要初始化 Homestead:

> bash init.sh

运行以上命令后,会在 ~/Homestead 目录下生成以下三个文件:

  • Homestead.yaml - 主要配置信息文件,我们可以在此文件中配置 Homestead 的站点和数据库等信息;
  • after.sh - 每一次 Homestead 盒子重置后(provision)会调用的 shell 脚本文件;
  • aliases - 每一次 Homestead 盒子重置后(provision),会被替换至虚拟机的 ~/.bash_aliases 文件中,aliases 里可以放一些快捷命令的定义。

接下来我们将会对 Homestead.yaml 文件的各项配置信息进行详细讲解。

Homestead.yaml 配置文件

Homestead.yaml 文件在 ~/Homestead 文件夹里,在 Git-Bash 里,你可以使用以下命令使用文件夹打开当前命令行所在目录:

> cd ~/Homestead/
> explorer .

如果你安装了 Atom,可通过运行下面命令快速打开 Homestead.yaml 文件:

> atom ~/Homestead/Homestead.yaml

为了行文方便,后面如果没有提示的话, Homestead.yaml 指的是 ~/Homestead/Homestead.yaml 文件。

Homestead.yaml里的配置大致可以分为以下几种:

  1. 虚拟机设置;
  2. SSH 秘钥登录配置;
  3. 共享文件夹配置;
  4. 站点配置;
  5. 数据库配置;
  6. 自定义变量;

接下来我们逐个讲解。

1. 虚拟机设置

Homestead 支持我们对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

2. SSH 秘钥登录配置

authorize 选项是指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址,虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的 /home/vagrant/.ssh/authorized_keys文件中,从而实现 SSH 免密码登录。在这里我们默认填写即可。

authorize: ~/.ssh/id_rsa.pub

keys 是数组选项,填写的是本机的 SSH 私钥文件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥文件复制到虚拟机的 /home/vagrant/.ssh/ 文件夹中,从而使虚拟机能共享主机上的 SSH 私钥文件,使虚拟机具备等同于主机的身份认证。此功能为 SSH 授权提供了便利,例如在后面章节中,我们只需要在 GitHub 上配置一个 SSH 公钥,即可实现 GitHub 对虚拟机和主机共同认证。

此处我们将公钥和私钥一起同步到虚拟机中:

keys:
    - ~/.ssh/id_rsa
    - ~/.ssh/id_rsa.pub

接下来我们来生成 SSH Key,开始之前,我们先使用以下命令来检查主机上是否已经生成过 SSH Key:

> ls -al ~/.ssh

如果存在 id_rsaid_rsa.pub的话,请跳过以下生成 SSH 的步骤继续阅读剩下内容。

否则使用以下方法来生成 SSH Key,请将 your_email@example.com 替换为你的邮箱:

> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

可以都选择默认,一路 Enter 键即可,大致如下:

file

这个时候如果我们再使用:

> ls -al ~/.ssh

查看的话,会出现:

file

SSH 秘钥的两个文件:

  • id_rsa —— SSH 秘钥的 私钥 (Private Key)
  • id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)

3. 共享文件夹配置

我们可以通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。

  • map 对应的是我们本机的文件夹,格式例如:E:/Homestead/Code,以开发者实际项目目录为准。
  • to 对应的是 Homestead 上的文件夹。

为了后续课程讲解,请统一配置如下:

folders:
    - map: ~/Code
      to: /home/vagrant/Code

默认 Homestead 会将我们本机的 ~/Code 文件夹映射到 /home/vagrant/Code 文件夹上。现在我们本机还没有 ~/Code 文件夹,让我们来创建一个:

> cd ~
> mkdir Code

执行成功后,同样的,我们可以通过 explorer . 命令在文件夹中打开此目录:

file

在后面的章节中,我们将会在该文件夹下放置我们所有的 Laravel 项目,Homestead 会把该文件夹下的项目自动映射到虚拟机的 /home/vagrant/Code 文件夹上。

4. 站点配置

站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites 配置所示,将 homestead.test 映射到一个 Laravel 项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。

sites:
    - map: homestead.test
      to: /home/vagrant/Code/Laravel/public

目前 Laravel 项目并不存在。这里先统一配置为以上,请不用着急,在后续的章节中,我们会创建该 Laravel 项目。

另外,主机里直接访问虚拟机站点,必须通过绑定 hosts 来实现。接下来我们利用 hosts 文件绑定 homestead.test 到虚拟机 IP 192.168.10.10 上。hosts 文件的完整路径为 C:\Windows\System32\Drivers\etc\hosts,可使用下面命令打开:

> atom C:/Windows/System32/Drivers/etc/hosts

如果你没有集成 atom 命令的话, 请使用编辑器直接打开文件,文件路径在 C:\Windows\System32\Drivers\etc\hosts

hosts 文件的最后面加入以下一行:

192.168.10.10  homestead.test

至此站点就配置好了,等我们在后面章节创建 Laravel 项目后,即可通过浏览器访问 homestead.test 站点。

5. 数据库配置

我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。

databases:
    - homestead

6. 自定义变量

最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。

variables:
    - key: APP_ENV
      value: local

Homestead 自定义变量在本书中并未使用,知悉有此功能即可。

运行 Vagrant

完成了 Homestead 的配置,接下来我们要开始启动虚拟机了。

在命令中输入 vagrant,能看到 Vagrant 为我们提供了一些便利的命令行,下面简单介绍一下 Vagrant 常用的一些命令行的使用:

命令行 说明
vagrant init 初始化 vagrant
vagrant up 启动 vagrant
vagrant halt 关闭 vagrant
vagrant ssh 通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant provision 重新应用更改 vagrant 配置
vagrant destroy 删除 vagrant

让我们开始启动 Homestead:

> cd ~/Homestead && vagrant up

第一次启动时,Vagrant 会做以下这几件事情:

  • 以导入的 Homestead 虚拟机盒子为模板,新建一台虚拟机;
  • 并按照 Homestead.yaml 里的配置信息,对这台新建的虚拟机进行配置;
  • 配置完成后启动虚拟机。

成功启动后,还是在 ~/Homestead 目录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:

> vagrant ssh

在我们登录成功后,你能看到类似于如下图的界面,现在我们在该终端界面中输入的所有命令都将运行在 Homestead 虚拟机上。

JWXEpjiUdi.png

在虚拟机界面下可以输入退出虚拟机:

$ exit

最后尝试关闭 Homestead:

> vagrant halt

注意:本书中因为虚拟机的存在,我们会有两个运行命令行的环境,一个是主机,另一个是 Homestead 虚拟机。我们会在命令的前面使用『命令行提示符』来区分主机和 Homestead。请记住以 > 开头的命令是运行在主机里,$ 开头的命令是运行在 Homestead 虚拟机里。详见 写作约定 - 命令行提示符

FAQ

以下是环境部署的常见问题搜集,方便遇到问题的同学查阅。如果你一切正常,请无视以下。

1. SSH auth method: private key

Homestead 启动时 SSH auth method: private key 解决方案汇总

2. Failed to restart php7.0-fpm.service: Unit php7.0-fpm.service not found.

Vagrant 启动虚拟机 提示 PHP7.0 模块找不到,这个怎么处理呢?

上一篇 下一篇
评论数量: 163
wlzx120

请问如何正确配置虚拟机的时区,按照linux时区配置选择Asia-china后,依然是UTC
vagrant@homestead:~$ date
Mon Aug 7 01:13:05 UTC 2017

awk

@wlzx120 sudo dpkg-reconfigure tzdata

wlzx120

@awk 非常感谢

sdx_888

那个用命令直接打开文件的好酷啊

TMJoker

再执行 > cd ~/Homestead && vagrant up 这个的时候总是报错:
file
求解答。

acfasj

atom /etc/hosts 打开的是 Git安装目录下的 Git\etc\hosts, 而不是 C:\Windows\System32\Drivers\etc\hosts

liujiacong

metadata.json的版本好像是0.6.0 还有,atom命令如何集成呢

xiao199512

用cmd来执行vagrant box add metadata.json吗?

acfasj

这里 homestead 的版本是不是改过了? 之前我下的是v3.1.0, 除此之外, 希望作者能把每次书籍改动的diff放出来, 不然这样有变动, 为什么要变动的原因不知道实在是很蛋疼

Aragorn

@TMJoker 我也遇到了这个问题,是编码不匹配问题
我的原因是用户名为中文,用户文件夹也是中文,所以把用户文件夹改为英文就解决了问题。
不知道对你是否有帮助

lxdong12

第一次 vagrant ssh一直不成功,报错没有ssh,好像是这个意思。流程都是按教程来的。后面我想到作者的好像是32位系统,他提供的vagrant可能也是32位的,把vagrangt和box都卸掉了,从官网下了最新的,然后就成功了。不知道是不是这个原因

file

about8090

@about8090 更新帖子。。。
回家试了一下,完全没有任何问题。。。。
折磨了一天,终于解决了。。。。原因 是 公司电脑太老 需要到 启动BIOS的虚拟化设置 | 开启CPU虚拟化支持

原因是:新主板,默认开启了,,,老主板没有开启

jiafeng

@lxdong12 遇到了和你一样的问题,也是要重新装64位的才可以,希望作者添加下提醒

microfang

使用vagrant ssh 这个命令时,报这个错有人遇到吗?
file

heilv_7755

@lxdong12 我也遇到了这个问题,正在下载64位的vagrant试试

stacy06

虚拟机自动建在C盘了。。C盘空间本来就不多,这下更紧张了,这个要怎么配置一下把虚拟机建到其他的盘呢?

stacy06

@acfasj 说的对,我也遇到相同问题,手动改了本机的hosts文件域名解析才对了

heilv_7755

使用64位的vagrant 1.9.8和VirtualBox-5.1.26 , 执行cd ~/Homestead && vagrant provision && vagrant reload,依然有:
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
的问题 0.0

Riecky

file
ssh这里多了drwxr-xr-x 不知道有没有影响,并且

file
这里报错了

Riecky

@lxdong12 你成功了吗?我现在界面跟你一样,但是少了lasg login : wed nov 30 08: 24: 20这句话有影响吗?我虚拟机卡在登录这了

lxdong12

@Riecky 成功了呀

lanyang0

homestead坑太多
建议大家用
laragon
一键安装 又好用

nkcc

为什么下载不了lt-homestead-3-0-0-2017082400.zip 显示No input file specified.错误

shiliuyang

lt-homestead-3-0-0-2017082400.zip 怎么无法下载???

lml517

同样无法下载lt-homestead-3-0-0-2017082400.zip,同样显示No input file specified

fsd

同样无法下载lt-homestead-3-0-0-2017082400.zip,同样显示No input file specified

fsd

@lxdong12 有lt-homestead-3-0-0-2017082400.zip ? 能给分享下么? 谢谢

Yangwawa

@fsd 浏览器绑定了的话,直接右击使用迅雷下载打开就行了,直接点开是不行的

nkcc

链接: https://pan.baidu.com/s/1hssy1Nm 密码: mtd8
传到百度网盘了 给网速慢的同学

Summer

@nkcc
@shiliuyang
@fsd 服务器出了点问题,现在可以下载了。

Zero_zhizhi

在执行vagrant up的时候报了如下错,怎么解决啊?

file

weixupeng999

@fsd 每次新建一个应用,就是创建homestead.app这样的配置的话,你得重新加在一下nginx nginx -s reload

weixupeng999

@Zero_zhizhi 你可能使用了别人的Homestead,你需要删除你的Homestead目下的一个文件夹,叫.vagrant 然后再去启动,一般会正常生成的!不行的话你就用vagrant init 初始化!

Zero_zhizhi

@weixupeng999 谢谢,我现在卡在这儿了
file
虚拟机里面需要登录:
file
这样怎么解决啊?

weixupeng999

@Zero_zhizhi 虚拟机不用管他哦!你可能没生成ssh密钥吧!按照用户名你可以加我微信,帮你搞搞哦!

dengcb

file
把Homestead镜像压缩删掉后,每次都会检测update。
然后发现json文件没了。你们也是一样的吧?
怎么能不检测update呢?
每次看见好烦啊,强迫症飘过~

fsd

The box failed to unpackage properly. Please verify that the box
file you're trying to add is not corrupted and try again. The
output from attempting to unpackage (if any):

x ./box-disk1.vmdk: Write failed
x ./box.ovf
x ./Vagrantfile
bsdtar.EXE: Error exit delayed from previous errors.
执行命令 vagrant box add metadata.json 时报的错 有谁知道原因么?

279466664

@Zero_zhizhi 遇到了和你一样的问题,你解决的方式是怎么的?

Zero_zhizhi

@279466664 我换了mac去开发。。。你解决了吗

279466664

@Zero_zhizhi 崩溃了,下载重装了几次仍然卡在
SSH auth method: private key

huangyiqianlin

@Zero_zhizhi 我也遇到了一样的问题

thedog

请问首次vagrant up 出现 Couldn't open file /Homestead/metadata.json 正常吗?

file

scaler

file
使用vagrant ssh 这个命令时,我也遇到这个问题了,大家是怎么解决的呢~~

leochinacn

请教一个问题:Homestead.yaml文件里配folders映射时,map:如果不是“~”的目录,是其它盘的目录,例如e:/laravel/Code,我是不是先要把这个目录设置成共享文件夹?map:应如何写,如果文件夹带密码帐号保护又要怎样设置?

dysdle

讲解的非常详细

![Uploading file...]()【表情】

AmberLavigne

感觉是 Homestead.yaml 配置出问题了 但是没有找到解决办法 ,求指点

file

AmberLavigne

说一下 我为什么报错了,,,上图找不同了哈哈 一定要认真观察 Homestead.yaml 文件里面的格式问题
这个是对的
file
这个就是我不小心弄完保存报错的

file

norie

IdentityFile /c/Users/my/.vagrant.d/insecure_private_key
我的秘钥文件是这样呢?

Louv

virtual box版本明明是5.1.14,官网都还没有5.1.4版本。

Mars634350962

file

怎么上传不了图片

Mars634350962

这种网络错误知道怎么解决?

acai

@Zero_zhizhi 和你一样,不知道怎么解决

ZQ

安装遇到的问题都得不到解答,唉~

sandilion

这个问题困扰了我一天了

file
报这样的错,大家有遇到吗?

sandilion

@sandilion 说是没有这个文件或是目录,我的win10的系统。前面都能够,就是到这里卡住了。一直报这个错误、

acai

请问有人知道用winscp连接,ROOT用户名和密码是多少吗?

sandilion

file

file
win10的系统,跟着一步一步的做的,可是到这里就不行,也重新装了好几次了。不知道大家有没有遇到这个问题,麻烦哪个朋友帮我解答下好吗?卡在这里已经三天了

sandilion

哪个好心人,帮我指点下嘛。上海的朋友有吗?

sandilion

安装好了,是我没有创建虚拟机。

file
1:名称直接写homestead,然后全部都下一步,不用你选择。
2:然后在输入
ssh-keygen -t rsa -C "944395736@qq.com"
Generating public/private rsa key pair.
后面按enter键。

file
就完成了,告诉大家,一定要先创建虚拟机,我知道自己很白痴,因为没有用过。

Mr_White_DT

好像2次就成功了,第一次失败是没有开启bios,有点小成就感。。。

youhaishen

$ vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Importing base box 'laravel/homestead'...
Progress: 70%There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["import", "C:/Users/Administrator/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/3.0.0/virtualbox/box.ovf", "--vsys", "0", "--vmname", "lt-settler_default_1503535533318_57377_1508922503494_43086", "--vsys", "0", "--unit", "9", "--disk", "C:\Users\Administrator\VirtualBox VMs\lt-settler_default_1503535533318_57377_1508922503494_43086\box-disk1.vmdk"]

Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting C:\Users\Administrator.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead\3.0.0\virtualbox\box.ovf...
OK.
0%...10%...20%...30%...40%...50%...60%...70%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage.exe: error: Appliance import failed
VBoxManage.exe: error: Could not create the imported medium 'C:\Users\Administrator\VirtualBox VMs\lt-settler_default_1503535533318_57377_1508922503494_43086\box-disk1.vmdk'.
VBoxManage.exe: error: VMDK: cannot write allocated data block in 'C:\Users\Administrator\VirtualBox VMs\lt-settler_default_1503535533318_57377_1508922503494_43086\box-disk1.vmdk' (VERR_DISK_FULL)
VBoxManage.exe: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component ApplianceWrap, interface IAppliance
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleImportAppliance(struct HandlerArg *)" at line 886 of file VBoxManageAppliance.cpp

Harvey

vagrant up 这一步 遇到报错 :
The specified host network collides with a non-hostonly network!
可能是我本地的虚拟机设置有问题 , 总之最后解决了
解决办法是 修改~/Homestead/scripts/homestead.rb
第22行

Configure A Private Network IP

    config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"

修改为
config.vm.network :public_network, ip: settings["ip"] ||= "192.168.10.10"
不太懂为什么 总之是解决了

Harvey

评论被识别为emoji了 注意 是把private_network 修改为 public_network

fansart

请教:
在这一步(在解压目录中 lt-homestead-3-0-0-2017082400 运行以下命令导入 Box)
怎样运行命令啊?

kaii

file怎么办

kaii

@fansart shift+右键

zhouguoguo

有人知道为什么vargant ssh登录之后没有命令提示符?!
file

kaii

@Zero_zhizhi 账号和密码默认都是vagrant

Reset

@scaler 这个怎么解决啊???

Moo

已经被环境配置卡了一天,真心无语了,win10系统。
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Checking if box 'laravel/homestead' is up to date...
==> homestead-7: Clearing any previously set forwarded ports...
==> homestead-7: Clearing any previously set network interfaces...
==> homestead-7: Preparing network interfaces based on configuration...
homestead-7: Adapter 1: nat
homestead-7: Adapter 2: hostonly
==> homestead-7: Forwarding ports...
homestead-7: 80 (guest) => 8000 (host) (adapter 1)
homestead-7: 443 (guest) => 44300 (host) (adapter 1)
homestead-7: 3306 (guest) => 33060 (host) (adapter 1)
homestead-7: 5432 (guest) => 54320 (host) (adapter 1)
homestead-7: 8025 (guest) => 8025 (host) (adapter 1)
homestead-7: 27017 (guest) => 27017 (host) (adapter 1)
homestead-7: 22 (guest) => 2222 (host) (adapter 1)
==> homestead-7: Running 'pre-boot' VM customizations...
==> homestead-7: Booting VM...
There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "caa3272d-922d-42e0-a84c-87824ddb82ba", "--type", "headless "]

Stderr: VBoxManage.exe: error: The virtual machine 'homestead-7' has terminated unexpectedly during startup with exit code 1 (0x1). More details may be availab le in 'C:\Users\DREAM\VirtualBox VMs\homestead-7\Logs\VBoxHardening.log'
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine

Reset

@scaler 你解决了没??

XXOOPOIUY

在解压目录中 lt-homestead-3-0-0-2017082400 运行以下命令导入 Box:

vagrant box add metadata.json怎么运行?直接用编辑器输入就行吗?
还有就是,能不能给点中文安装包,英语不好很尴尬啊

XXOOPOIUY

我想问一下,我只想在Windows下安装,但是貌似没有教程啊,这里的Windows教程怎么也用到虚拟机了?小白不懂

XXOOPOIUY

lt-homestead-3-0-0-2017082400这个文件用啥打开,

XXOOPOIUY

还有Vagrant安装完成之后为什么桌面没有图标?

XXOOPOIUY

突然感觉这教程不适合我啊,新手入门不了啊

XXOOPOIUY

我还是肯文档去了,谁和我说的比文档解释的明白,啊啊啊啊啊,好烦啊

jiangqx

vagrant ssh 那张图很明显是mac 上item2的图片。 lol

RogerLiu

没有人遇到我的问题吗 homestead 的压缩文件竟然解压一直出错

shihe

@zhouguoguo 我和你一样的问题,你解决了吗?

zhouguoguo

@shihe 把virtual box和vagrant换成教程里指定的版本就好了,不要装最新版本

shijf

file

shijf

@
@shihe
@zhouguoguo
我也是这样的问题 Win10系统 ,然后我用的Xshell 5

file
解决办法:
1.新建
file
file
2.
文件选择 生成的密钥
file
3.成功啦

shihe

@shijf
@zhouguoguo
重新下载,然后安装,终于。。。一切顺利!

shihe

file

shijf

@shihe OK,实际用Xshell也挺好哒。比git 方便一些

1file.
2.

file
3.

file

shihe

@shijf 是的啊
另外为什么,页面打开要十几秒,为啥那么慢呢?

file

GoukouRuri

并不是很好用,会占用c盘40多g的硬盘作为虚拟盘,对新手来说还算可以吧,有能力还是自己打lnmp环境才是便捷,laravel5.5需要php7.1环境,

FEr-Charles

@wlzx120

  1. sudo tzselect -> 选择亚洲 -> 选择中国 -> 选择北京 -> 确定
  2. 这时候输出date -R还是不对
  3. sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  4. 现在就对了
fei

file
环境变量配置过了但一直搜不到

quicksand197

@zhouguoguo 请问一下你这个问题解决了?我今天到最后一步也是这样

weetch

终于可以了,之前按教程做的没问题,后来因为数据库连不上重装了虚拟机和vagrant

碰到配置没问题,但是就是ping不同ip,然后域名也解析不出来,访问ip也404

我先git clone 的Homestead脚本,然后vagrant box add,导致了这个问题。。

请严格按照教程顺序

eluotao

@TMJoker 我也是一样,请问你解决了吗?

eluotao

@weetch 求带朋友,我是win10 一直装不了.

vini123

win7下搭建环境,按照教程,一切顺利。

qizhukanrichu

win7下输入 cd ~/Homestead && vagrant up后,其中一行提示Couldn't open file /lt-homestead/metadata.json 是怎么回事啊?访问homestead.app 就打不开谷歌浏览器提示:拒绝了我们的连接请求。

qizhukanrichu

@vini123 帮我看看啥问题啊

vini123

@qizhukanrichu vagrant box add metadata.json 这一步,正确了吗。按照教程来,都很顺利的。

qizhukanrichu

@vini123 嗯嗯 用笔记本就是正确的,台式机上的步骤应该错了

lr1955479634

@quicksand197 Vagrant版本和教程保持一致

ayauper

@Moo 我也遇到同样问题,你解决了吗!

ayauper

@Zero_zhizhi 你解决了吗,我也遇到同样的问题。

ayauper

@Zero_zhizhi 我也出现过这个问题,是由于vritualbox 版本的问题,记得当初安装完让重启,我稍后重启的,更换5.1.30版本解决此问题,希望能帮助你们。。。

gakkispy

各位如果启动 Vagrant (> vagrant up) 这一步的时候出现了错误,可以尝试将 VirtualBox 和 Vagrant 都升级到最新版本。

dalv

请问这个怎么解决?
$ vagrant ssh
ssh_exchange_identification: read: Connection reset by peer

weetch

来来来,听我讲个故事
之前学这个初级教程的时候,我也不记得电脑到底开启了虚拟化没
但是初级学完,学到高级三分之一,都可以使用vagrant ssh登陆上,后来突然vagrant up卡在private key
各种重装,依然没用,然后尝试使用xshell登陆,也连接不进去
最后我打开virtual box,查看虚拟机跑的日志,有一条警告:
WARNING! 64-bit guest type selected but the host CPU does NOT support HW vir
然后跑去bios设置,真的没开启虚拟化,设置成enable就可以了,成功vagrant ssh
不要问我之前为什么丝毫没问题,有卡在private key问题的同学一定要试试链接里的四个方法,我一直认为开启了,所以忽略了第四条

Dream_Sky

file
让人头疼的错误

nian_2017

win7 64位
1,刚开始出现错误
返回 代码:E_FAIL (0x80004005)
组件:Machine
界面:IMachine {480cf695-2d8d-4256-9c7c-cce4184fa048}
试了很多办法,不行,是VirtualBox固有错误,使用VirtualBox4.3.12可以往下走.
2,继续,等待了很长时间出现Timed out while waiting for the machine to boot.
关闭,设置
setting->network->cable connected选项勾选
成功启动

Xayah

@nian_2017 有解决吗?同样的问题

huaziking

file
这个问题已经困扰我两本书了,文件夹共享失败,网上的很多方法也看了, 之前看说是virtual box本身的bug,也降过几个版本,现在是5.0.14, vagrant 版本1.9.5 ,
GuestAdditions 5.1.14 running --- OK
真的不知道问题在哪了,之前就直接没有用homestead 自己搭的环境,但是还是想搞明白

nian_2017

@Xayah

你是哪有问题?我使用VirtualBox4.3.12的版本,然后设置如下就可以了

file

Xayah

@nian_2017 错误代码是一样的,我更新了virtual box就可以了。现在环境是搭建好了,但是访问会出现页面找不到文件的情况

wangyucai

window 初始化 Homestead应该是 init.bat

275924967

之前因为配置原因出现错误,后面改了又出现一连串的错误,最后重装了Vagrant,更新了V-box,成功了

ITmoon

file
这样的问题有人遇到过吗?

ITmoon

@Moo 我也遇到同样的问题,你解决了吗?

liergou

不知道为什么 我的ip映射 谷歌浏览器总是显示这样

file

尝试了 挺多方法都没解决 希望有解决了的同学可以 告诉我一下 谢谢了

Mingasd

@AmberLavigne 我也遇到了这个问题,请问怎么解决啊

AmberLavigne

@Mingasd homested 文件配置里面sites 配置不止一个站点映射的时候中间一定不能有换行操作 , 更改完文件 先去只执行以
vagrant provision && vagrant reload 初始化一下 在 去 vagrant up && vagrant ssh

rongsw

@fei 我的问题跟你一样,你的解决了吗

Lionel079

安装不成功 vagrant up报错

file

asdfffy

各位大佬我 vagrant up 成功进去了之后不返回提示符是怎么回事啊 有遇到的吗

file

afei22

@leochinacn 我也想问这个问题,解决了吗?

dashen

@shijf 谢谢你的方法。非常有用!赞!!!

nagaru

@AmberLavigne 遇到了和这位同学一样的问题:,不过我和他出问题的地方有些不同。他是多了一行,我是在一行里用了Tab来缩进。注意到别的行都是用4个空格来缩进的,将Tab改成4个空格之后问题解决。

nagaru

搞定了配置文件的问题之后,又在总是提示"Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_SUPDRV_COMPONENT_NOT_FOUND).

",报0x80004005的问题上折腾了一个小时……
无数次踩坑的经验最后告诉我,遇到vbox出奇奇怪怪的问题的时候,换个版本的安装包,要么升到最新版要么降一个版本,再重装一次,有奇效……

wang173999

@asdfffy 我也遇到了这个问题 求解啊

Alan-Wen

file
vagrant up启动错误,怎么办,各位大神???

asdfffy

@wang173999 我觉得是 git bash 字体的设置问题(?)随便找了一下没找到解决方案,然后我就换了putty,win自带的CMD也可以正常显示

asdfffy

@Alan-Wen 我也遇到过一样的问题,用 vagrant global-status 和 vagrant box list 找到已经存在的虚拟机 然后 vagrant box remove 和 vagrant destroy 删除后就解决了 你可以试试

sulele89757

@Alan-Wen win10吧?我也遇到了,尚未解决~~~头疼

LLemonGreen

@asdfffy 同样问题,不显示提示符

LLemonGreen

@sulele89757 我换了最新版本的vagrant和virtualbox就没问题了

wang173999

@asdfffy 我今天装了 5.1.3的 virtual box 就行了

ZeroX

@nian_2017 谢谢你的解决方案

ZeroX

@sulele89757 @Alan-Wen 可以试一下使用VirtualBox4.3.12 我是这么解决这个问题

sulele89757

@ZeroX 我就凄惨了,怎么都弄不好,一气之下。换系统Ubuntu

sulele89757

@LLemonGreen 我换Ubuntu了。。windows折腾不动了

cyan317

box: Box file was not detected as metadata. Adding it directly...
怎么处理

a8955907

![Uploading file...]() 最后ssh卡住了

whitsats

我能不能直接使用linux环境做开发。。。

zhangbao

我执行 vagrant box add metadata.json 并没有成功,而是提示错误

file

大家有遇到这个情况的吗?

我的环境:windows10 命令行工具:CMD & Power Shell

zhangbao

@zhangbao 我安装了最新版的 Vagrant 就可以了

zhangbao

@Reset @Mon 下载最新版的 Virtual Box 即可解决。

@Summer 我用最新 window10 系统安装 VirtualBox 5.1.14 会有问题,而且不是安装时出现的问题,而是 vagrant up 时出现的问题,@Reset @Mon 和我一样遇到了这个问题,在下载最新版本的 VirtualBox 后问题排除;另外,在 window10 系统下,安装 Vagrant 1.9.0 版本后,执行 vagrant box add metadata.json 也不会成功,在下载最新版本的 Vagrant 后问题排除。

所以,在文章头部,针对 window10 系统给出最好给出提示----“针对 window10 系统,建议统一使用最新版本的 VirtualBox 和 Vagrant 否则很有可能会出错” 。

Yo

@zhangbao 哇,谢谢老哥,弄了好久都没弄好的win10, VirtualBox和Vagrant,最新版本一次过,没有任何问题

nechiy

@zhouguoguo 我的也是 是不是还在update?

Alan-Wen

@sulele89757 我按照@zhangbao 说的,Virtuanlbox,vagrant都安装最新版本的,全部重跑一遍就OK了,我是win10的系统

guoyu

@zhangbao 我想问下你是不是下载的virtualbox5.2.4和vagrant2.0.1???我下载的是新的吧,但是还是出现vagrant box add metadata. 这个问题

guoyu

@zhangbao 哦哦,知道怎么回事了。不能在有中文路径。。。。

xushuwen

1:win10 安装vagrant 失败的话,请开启虚拟化 自行百度
2:严格按照课程的步骤,一步步的去安装,碰到问题记录下,别忘了把你安装的box remove 多装几遍;
3:~/:这玩意在win10 下就是根目录 是用户管理文件下的根目录 rsa 还有 pub_..什么的按照教程都能搞通,不要自己复制粘贴 类unix
4:仔细阅读metadata.json 和homestead.yaml 这两文件里的内容 多动下手,就会有收获。。
5:安装成功之后:别忘了换源 cd /etc/apt/ 找到sources.list 删除里面全部的内容 换成国内镜像源 别忘了 添加ppa源(命令行) 自行百度
6:交作业 :折腾了好多遍。。

hana0211

@lanyang0 windows平台用laragon确实比较好

shijf

@dashen 共同进步,客气啥

huaziking

mac下 进入虚拟机后 利用命令行生成的文件 ,在Mac中没有权限修改,看了权限是root的,这个是共享文件夹出现的问题吗?有没有小伙伴遇到的?

Cafebabe

@sandilion 你微信多少,我碰到跟你一样问题了,折腾好久不知道怎么弄。

zhangweih

win10, 按照教程安装的, 前面都ok,vagrant up时和 @Zero_zhizhi 的现象一样,起不来;
把楼爬了一遍,官网下了两个最新版本:VirtualBox-5.2.4-119785-Win.exe, vagrant_2.0.1_x86_64.exe,重装,可以了;
用的是git bash,vagrant ssh后也是不显示操作符,但是命令都可以执行。
建议作者在教程一开始就说明,win10请下载安装最新版本。

huanhuan

file
冒昧的问一下 我这种 vagrant ssh 进去之后 接下来 什么都没有的 但是vm 显示 正在运行 也没有出错 是不是 就是好啦 我的win10系统 看了大家的问题 和解答 确认一下 求轻喷

huanhuan

@zhangweih 大哥 看一下 这样是不是 就好了

leijiang

笔记:bash init.sh 是在 git bash 中运行的

18607668210

@Moo 你这个解决了吗?我win10也有这个问题

wubuwei

cd ~/Homestead

git checkout v5.4.0
注:为了保证后续讲解的流畅性,请注意版本的一致性,这里我们使用 v5.4.0。
bash init.sh

使用

file

Steve

@asdfffy 老哥 怎么解决的


请不要发布不友善或者负能量的内容。
刻意练习,每日精进。
25
点赞
20916
浏览
163
评论
贡献者

作者
Summer
A man seeking for Wisdom.