Laravel Homestead文件夹映射无法正常工作

问题描述 投票:4回答:5

我按照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'

编辑hosts文件:

127.0.0.1   laravel.app
192.168.10.10 laravel.app

我可以运行vagrant并将ssh运行到虚拟机中。

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

enter image description here

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

php laravel vagrant homestead synced-folder
5个回答
8
投票

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

vagrant reload --provision

1
投票

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. 应该与您的OS文件结构相匹配
  2. Homestead的文件结构,你不应该改变。

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

192.168.10.10 laravel.app

1
投票

由于vagrant-hostsupdater,我有类似的问题。只需使用即可卸载插件

vagrant plugin uninstall vagrant-hostsupdater

然后再次配置机器

vagrant reload --provision

1
投票

首先,您需要知道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

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

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

0
投票

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

folders:
    - map: D:\Code\Homestead\Projects\RestaurantManager
      to: /home/vagrant/RestaurantManager
© www.soinside.com 2019 - 2024. All rights reserved.