美文网首页larvel进阶笔记
windows 下安装homestead 问题解决

windows 下安装homestead 问题解决

作者: 倚南_Determined | 来源:发表于2019-08-26 10:27 被阅读0次

    大体流程按照文档安装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
    

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

    相关文章

      网友评论

        本文标题:windows 下安装homestead 问题解决

        本文链接:https://www.haomeiwen.com/subject/yoglectx.html