windows 下安装homestead 问题解决

大体流程按照文档安装Laravel Homestead

  • 如果你的网速比较慢,或者不能翻墙,先下载vagrant.box在进行下边的操作
    链接:https://pan.baidu.com/s/1ofrp4VLFk1amAC44y_IB-A
    提取码:wctv
    复制这段内容后打开百度网盘手机App,操作更方便哦

1. 下载VirtualBoxVagrant以及box盒子

VirtualBox
https://www.virtualbox.org/wiki/Downloads
Vagrant
https://www.vagrantup.com/downloads.html

然后等待box下载完毕,官方文档上这样说的,但是考虑到有的同学网速较慢,我第一次搞这个,在公司网络下下了一天,早起来了下载,到了下班才下好,难受QAQ

在终端执行下面的命令将 laravel/homestead box 添加到 Vagrant 中安装。你可能需要几分钟的时间来下载 box , 因为它取决于你的网络连接速度:
vagrant box add laravel/homestead

如果网盘下载也不喜欢,或者版本不是最新的,也可以到以下地址下载最新版本(目前已更新为8.0.1)的Homestead盒子(可以使用下载工具下载,比如IDM):
可以去官网查看版本,再把version后边的版本号改一下直接下载:https://app.vagrantup.com/laravel/boxes/homestead

https://app.vagrantup.com/laravel/boxes/homestead/versions/7.1.0/providers/virtualbox.box
https://vagrantcloud.com/laravel/boxes/homestead/versions/7.1.0/providers/virtualbox.box
如果以上网址不能用你可以先运行这个命令

vagrant box add laravel/homestead

一般在Downloading后边就会显示出下载地址,然后使用工具下载就可以了,不推荐使用迅雷,好多资料说迅雷下载的会损坏,不过我网盘这个就是我朋友用迅雷下的可以使用,建议使用断点续传的工具


红框内是下载地址

2. 导入盒子

下载下来的 .box 文件,可以使用以下方法导入:
在 .box 的同文件夹下创建一个 metadata.json 文件,内容为以下

{
    "name": "laravel/homestead",
    "versions": 
    [
        {
            "version": "8.0.1",
            "providers": [
                {
                  "name": "virtualbox",
                  "url": "virtualbox-8.0.1.box"
                }
            ]
        }
    ]
}

字段说明

  • version - 可以指定当前盒子导入的版本标示;
  • url - 支持 绝对文件路径 和 相对文件路径
    以上是相对路径,因为是和box同一个目录
    绝对路径写实际路径file://D:/xwd/laravel/homestead/virtualbox-8.0.1.box

运行以下命令导入:

vagrant box add metadata.json

报错一

内存不足

原因:
使用vagrant up启动虚拟机的时候,打包的虚拟机会保存在.vagrant.d/boxes目录下,这个文件夹默认是存放在系统盘上的C:/Users/{用户名}目录下的,如果box文件非常多的话,会造成空间不够。
解决方案:把这个目录移到其它盘

  • 将.vagrant.d文件夹剪切到别的盘,比如1d:/software/vagrant/.vagrant.d1(注意:从文件夹复制/要改成\哦)
  • 设置环境变量VAGRANT_HOMEd:/software/vagrant/.vagrant.d
  • path环境变量下添加%VAGRANT_HOME%分号";"结尾

再次运行

vagrant box add metadata.json

运行 list 命令查看是否添加成功:

vagrant box list

成功的话,会显示出版本号


image.png

3. 安装 Homestead

你可以通过克隆代码来安装 Homestead。 建议将代码克隆到你的 "home" 目录下的 Homestead 文件夹中 , 这样 Homestead box 就可以作为你的所有 Laravel 项目的主机:
git clone https://github.com/laravel/homestead.git ~/Homestead

当然了也可以自己找一个文件夹,然后运行

git clone https://github.com/laravel/homestead.git Homestead

因为 Homestead 的 master 分支并不是稳定的,你应该使用打过标签的稳定版本。你可以在 GitHub 发行页: 上找到最新的稳定版本:

cd ~/Homestead

// 克隆期望的发行版本...
git checkout v8.0.1

一旦克隆 Homestead 代码完成以后,在 Homestead 目录中使用 bash init.sh 命令来创建 Homestead.yaml 配置文件。 Homestead.yaml 文件将被放在 Homestead 目录中(我用的git bash,bash init.sh):

// Mac / Linux.../git bash
bash init.sh

// Windows...
init.bat

4. 配置 Homestead

打开你刚才克隆下来的目录,找到Homestead.yaml文件,你会看到如下代码

---
 ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox 
                                                                
authorize: ~/.ssh/id_rsa.pub

keys:
   - ~/.ssh/id_rsa

folders:
    - map: ~/Code                //这个是你的项目的地址,例如D:\随便\项目的目录 1
      to: /home/vagrant/Code  //这个是homestead系统的地址 2
                                             //其实这就是windows和hometead两个系统共享一个文件夹,难懂一点的话叫||映射

sites:    //__这个是你的项目
    - map: homestead.app  这个是你项目要设定在你的浏览器上的地址 //需要设定C host文件 
      to: /home/vagrant/Code/Laravel/public                //这里的Laravel其实就是D:\随便\项目的目录\Laravel 

databases:
   - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

首先配置Hosts 文件

你必须将 Nginx 站点中所添加的域名添加到你本机的 hosts 文件中。 hosts 文件会将把访问你 Homestead 站点的请求重定向到你的 Homestead 虚拟机上。在 Mac 和 Linux 中,该文件的地址在 /etc/hosts,在 Windows 中位于 C:\Windows\System32\drivers\etc\hosts。添加新站点的格式如下所示:

192.168.10.10  homestead.test

确保监听的 IP 地址是你在 Homestead.yaml 文件中所设置的。

将以上的Homestead.yaml文件的代码,按照以下代码修改

---
ip: "192.168.10.10"  // 刚才 host 里填写的 ip
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
   - ~/.ssh/id_rsa

folders:
    - map: D:\随便\项目的目录        //当启动时会自动转换成 D:/随便/项目的目录,这个是正确的
      to: /home/vagrant/Code

sites:   //看到这你可以看到为什么是sites,而不是site
    - map: homestead.test                // 这个是你在刚才在 hosts 设定的网站地址
      to: /home/vagrant/Code/homestead/public  // 这里的king是你设定的D:\随便\项目的目录\king

    - map: lamu.local
      to: /home/vagrant/Code/lamu/public

    - map: leimu.local
      to: /home/vagrant/Code/leimu/public


databases:
    - homestead

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# zray:
#  If you've already freely registered Z-Ray, you can place the token here.
#     - email: foo@bar.com
#       token: foo
#  Don't forget to ensure that you have 'zray: "true"' for your site.

提醒 : IDE(代码编译器)记得保存 .
警告 : 以上代码为最基础的 Homestead 配置 ,你要进行开启其他功能最好阅读或参考 Laravel 和 vagrant 官方文档
举例 :例如在 folders 下面填写 type:“nfs” , 这对于 windows 来说是错误的,对于 mac 来说却是成功的,原因 vagrant 不支持对 windows 开启 nfs ,具体参考 synced-folders .

5. 好了现在回到 terminal ( 终端 ) 启动吧,输入

vagrant up

到这里应该可以执行成功了,出现以下内容即为成功

C:\Users\windows的账户名\Homestead>  vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8000 (host) (adapter 1)
default: 443 (guest) => 44300 (host) (adapter 1)
default: 3306 (guest) => 33060 (host) (adapter 1)
default: 5432 (guest) => 54320 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 5.0.20
default: VirtualBox Version: 5.1
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant =>C:/Users/windows的账户名/Homestead
default: /home/vagrant/Code =>  D:/随便/项目的目录 //当你没看到这条信息请返回你的Homestead.yaml设定
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

但是配置成功了吗?还不能确定的,输入 vagrant ssh 登入 homestead

vagrant ssh

Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
*Documentation:  https://help.ubuntu.com/
vagrant@homestead:~$          //当看到这个说明登入成功了
vagrant@homestead:~$ ls   //查看下一级目录 ,有Code,可以安心
Code
vagrant@homestead:~$ cd Code 
vagrant@homestead:~/Code$ ls //当看到king了,你可以彻底放心了,配置成功了  
king

提醒 : 如果你启动了 Homestead , 你发觉你的配置文件 Homestead.yaml : 想要修改,可以的使用命令:vagrant up --provision ,此命令必须在Homestead 启动后使用,此命令作用为更新Homestead.yaml的修改

你就可以通过浏览器访问该站点了

http://homestead.test

wait wait wait ...

报错二

powershell版本低

The version of powershell currently installed on this host is less than
the required minimum version. Please upgrade the installed version of
powershell to the minimum required version and run the command again.

  Installed version: 2

  Minimum required version: 3

要求最低版本 3

  • 我的公司电脑是 Windows server R2 Enterprise
  • PowerShell 2.0 –> PowerShell 4.0
    解决:
  1. 下载Windows6.1-KB2819745-x64-MultiPkg.msu (https://www.microsoft.com/zh-CN/download/details.aspx?id=40855
  2. 下载.net4环境,如已安装请忽略(https://www.microsoft.com/en-us/download/details.aspx?id=17851
  3. 直接双击Windows6.1-KB2819745-x64-MultiPkg.msu进行安装,并在安装后重启系统

测试:
重启系统之后测试下PowerShell 4.0是否安装成功?


Version就是版本号了

报错三

还有一个问题就是,新建虚拟机的时候回在C:\Users\用户名\里生成一个VirtualBox VMs文件夹,是放你的虚拟机的,如果你C盘空间不足或者不想放在C盘,可以删掉,在任意目录新建一个同名的文件夹,然后打开你的Oracle VM VirtualBox,
点击全局设定

image.png

在默认虚拟电脑位置这一项,最右边的下拉三角选择其他
image.png

然后选择你刚才新建的文件夹,点击选择文件夹


image.png

然后点击OK就可以了
image.png

全体注意:

   其实我目前还有一个问题
运行vagrant up的时候超时

image.png

显示启动了,但是
image.png

解决方法

经过我的不懈努力,问题还是被我解决了
没错,就是如他所说,这台电脑的虚拟化没有打开,可能是电脑太老了
直接百度也行https://jingyan.baidu.com/article/e2284b2b6442f2e2e7118d59.html
我弄了一下,有一个地方跟我的电脑不太一样,还是记录一下

  1. 开机狂按键盘左上角的ESC,但是别按坏了,快速按就可以
  2. 进入了DOS下的开始菜单后,选择computer setup。 (或者直接开机狂按F10。跟1.2步骤效果一样,感觉先esc在f10 优雅一点)


    image.png
  3. 进入Security选项下面的System Security


    image.png
  4. 把Virtualization Technology这项设置成Enable,然后按F10确认。
    这里我的优点不一样了,两张图片都上一下吧
    百度的

    我的

    不知道啥区别,我是把第二三项都改成了enabled,上下键选中按键盘的左右就可以改变了,然后按键盘的F10,最后退回到File选项下,选择Save Changes and Exit,然后电脑自动重启就好了。
    回车重启

    最后打开电脑,再次进入原来的目录,打开终端
vagrant up

发现开启成功
除了官网还主要借鉴了一篇文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,968评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,682评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,254评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,074评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,964评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,055评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,484评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,170评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,433评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,512评论 2 308
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,296评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,184评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,545评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,150评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,437评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,630评论 2 335

推荐阅读更多精彩内容