缺少共享文件夹的宿主路径:~/Code

The host path of the shared folder is missing: ~/Code

我想在我的开发机器上使用 laravel homestead 并成功安装了 virtualbox 和 vagrant,但是当我 运行 vagrant up 我得到这个错误:

Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

vm:
* The host path of the shared folder is missing: ~/Code

Homestead.yaml 文件如下所示:

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

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

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      hhvm: true

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

这些是默认设置,但它们并不真正适用于我的机器 - 我什至没有 /home/vagrant 文件夹,也没有任何我能看到的地方 ~/Code。我正在使用 ubuntu 12.04 - 你能告诉我应该如何配置我的设置吗,因为根据官方文档我有点迷路了。

在您的 Ubuntu 机器中,您必须让 Homestead 知道您的实际代码所在的位置。示例:

如果您的代码位于名为 WORKSPACE 的单独分区中,您需要键入以下内容:

    - map: /Volumes/WORKSPACE/YourProject
      to: /home/vagrant/Code

在 Windows 案例中我使用了这个:
- 地图: e:/GIT/PHP/mathmaps/Code
至:/home/vagrant/Code

P.S。 GIT 是我的工作区文件夹

在 homestead 目录中,您必须 运行 命令 bash init.sh

这将在您的主目录 (~) 中生成 Homestead.yaml 文件(以及 after.shaliases)。

如果要再次更改Homestead.yaml,则必须重新运行 bash init.sh。它会要求覆盖,说是。

(如其他答案中所述,确保 folders: - map: 的目录存在)

运行 bash init.sh 第二次会提示覆盖初始设置,这也会输出你需要编辑正确 Homestead.yaml 文件的目录路径.

必须将 map: 属性设置为您要保存代码的位置。例如,我会将我的代码保存在 Homestead 文件夹中名为 code 的文件夹中,因此,映射为:

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

其中 'Development' 只是我主目录中的一个文件夹,我将所有代码都放在其中