【问题标题】:Laravel Homestead folders mapping not working correctlyLaravel Homestead 文件夹映射无法正常工作
【发布时间】:2015-11-22 18:35:02
【问题描述】:

我已经按照 Laravel site 中描述的步骤安装了宅基地。 安装成功。

我已经配置了 Homestead.yaml 文件:

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: D:/Code/Homestead/Projects/RestaurantManager
      to: /home/vagrant/RestaurantManager

sites:
    - map: laravel.app
      to: /home/vagrant/RestaurantManager/public

databases:
    - homestead

variables:
    - key: 'APP_ENV'
      value: 'local'
    - key: 'APP_DEBUG'
      value: 'true'

编辑主机文件:

127.0.0.1   laravel.app
192.168.10.10 laravel.app

我可以运行 vagrant up 并通过 ssh 进入虚拟机。

问题是文件夹映射不起作用。尽管我给出了不同的路径,但映射始终使用相同的路径(D:/Code/Homestead)。你可以在这里看到它:

所以当我尝试在本地访问应用程序时,我得到“页面不可用”。

【问题讨论】:

    标签: php laravel vagrant homestead synced-folder


    【解决方案1】:

    更改配置的黄金法则是使用配置选项重新加载 vagrant 机器,因此请尝试运行:

    vagrant reload --provision
    

    【讨论】:

      【解决方案2】:

      首先你要知道Vagrant会自动将宿主机Vagrantfile的当前目录作为共享文件夹配置到VM内部的/vagrant目录下。

      要禁用此默认行为,请在您的 Vagrantfile 中添加此行:

      config.vm.synced_folder ".", "/vagrant", disabled: true
      

      其次,您可以通过转义 \ 字符来编写 windows 文件路径,如下所示:

      folders:
          - map: D:\\Code\\Homestead\\Projects\\RestaurantManager
            to: /home/vagrant/RestaurantManager
      

      ⚠重要提示:完成此操作后,运行:

      vagrant reload --provision
      

      或者,您可以删除Homestead.yaml 中的整个folders 部分,并直接在Vagrantfile 中指定共享文件夹映射,如下所示:

      config.vm.synced_folder ".", "/home/vagrant/RestaurantManager"
      

      【讨论】:

        【解决方案3】:

        由于vagrant-hostsupdater,我遇到了类似的问题。只需使用

        卸载插件
        vagrant plugin uninstall vagrant-hostsupdater
        

        然后再次配置机器

        vagrant reload --provision
        

        【讨论】:

          【解决方案4】:

          Homestead.yaml 文件应该有:

          folders:
              - map: D:/Code/Homestead/Projects # Note 1
                to: /home/vagrant/Code # Note 2
          
          sites:
              - map: laravel.app
                to: /home/vagrant/Code/RestaurantManager/public
          
          1. 应该与您的操作系统文件结构匹配
          2. Homestead 的文件结构,你不应该改变它。

          您的hosts 文件也需要更新以删除对127.0.0.1(即您的本地主机)的引用:

          192.168.10.10 laravel.app
          

          【讨论】:

            【解决方案5】:

            对于 Windows,在映射到特定文件夹时使用反斜杠 \ 试试这个:

            folders:
                - map: D:\Code\Homestead\Projects\RestaurantManager
                  to: /home/vagrant/RestaurantManager
            

            【讨论】:

              猜你喜欢
              • 2016-11-11
              • 1970-01-01
              • 1970-01-01
              • 2018-09-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-07-19
              相关资源
              最近更新 更多