Laravel 如何将Homestead/VM从运行在C驱动器上移动到F驱动器上?

Laravel 如何将Homestead/VM从运行在C驱动器上移动到F驱动器上?,laravel,laravel-5,vagrant,virtualbox,homestead,Laravel,Laravel 5,Vagrant,Virtualbox,Homestead,我目前在Windows 7上从主目录运行Homestead,即C:/Users/username 我的C驱动器空间不足,没有RAID。但是,我有另一个标有“F”的驱动器,它有raid 0,以帮助在HD崩溃时保持我的数据/文件的安全,而且它还有更多的存储空间 我想把我的家园和项目搬到F区 以下是我迄今为止所做的工作 在命令行中,我执行了以下命令 f: vagrant box add laravel/homestead git clone https://github.com/laravel/hom

我目前在Windows 7上从主目录运行Homestead,即
C:/Users/username

我的
C
驱动器空间不足,没有RAID。但是,我有另一个标有“F”的驱动器,它有raid 0,以帮助在HD崩溃时保持我的数据/文件的安全,而且它还有更多的存储空间

我想把我的家园和项目搬到F区

以下是我迄今为止所做的工作

在命令行中,我执行了以下命令

f:
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
mkdir Projects
然后,我根据以下代码编辑了位于
F:/homestad
上的init.sh文件

#!/usr/bin/env bash

homesteadRoot=~/.homestead

mkdir -p "$homesteadRoot"

cp -i src/stubs/Homestead.yaml "$homesteadRoot/Homestead.yaml"
cp -i src/stubs/after.sh "$homesteadRoot/after.sh"
cp -i src/stubs/aliases "$homesteadRoot/aliases"

echo "Homestead initialized!"
修改以下代码,以便文件在F驱动器而不是主驱动器上执行

#!/usr/bin/env bash

homesteadRoot=/f/.homestead

mkdir -p "$homesteadRoot"

cp -i src/stubs/Homestead.yaml "$homesteadRoot/Homestead.yaml"
cp -i src/stubs/after.sh "$homesteadRoot/after.sh"
cp -i src/stubs/aliases "$homesteadRoot/aliases"

echo "Homestead initialized!"
然后使用gitbash从F:\Homestead执行以下命令

bash init.sh
然后我在F驱动器上手动创建了
.ssh
文件夹,然后像这样创建了我的rsa密钥

mkdir .ssh
ssh-keygen -t rsa -C "you@homestead"
---
ip: "192.168.10.10"
memory: 5120
cpus: 1
provider: virtualbox

authorize: /f/.ssh/id_rsa.pub

keys:
    - /f/.ssh/id_rsa

folders:
    - map: /f/Projects
      to: /home/vagrant/Projects
      type: "nfs"

sites:
    - map: dev.app
      to: /home/vagrant/Projects/Project1/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local
vagrant SSH
最后,我更新了我的homestad.yaml,使其看起来像这样

mkdir .ssh
ssh-keygen -t rsa -C "you@homestead"
---
ip: "192.168.10.10"
memory: 5120
cpus: 1
provider: virtualbox

authorize: /f/.ssh/id_rsa.pub

keys:
    - /f/.ssh/id_rsa

folders:
    - map: /f/Projects
      to: /home/vagrant/Projects
      type: "nfs"

sites:
    - map: dev.app
      to: /home/vagrant/Projects/Project1/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local
vagrant SSH
但是,当我转到192.168.10.10:8000时,我一直没有指定输入文件。

然后,当我尝试像这样SSH到服务器时

mkdir .ssh
ssh-keygen -t rsa -C "you@homestead"
---
ip: "192.168.10.10"
memory: 5120
cpus: 1
provider: virtualbox

authorize: /f/.ssh/id_rsa.pub

keys:
    - /f/.ssh/id_rsa

folders:
    - map: /f/Projects
      to: /home/vagrant/Projects
      type: "nfs"

sites:
    - map: dev.app
      to: /home/vagrant/Projects/Project1/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local
vagrant SSH
我找到了一条不同于我所期望的或在我的家园中定义的道路

cd /home/vagrant/Projects/Projects1/Project1
因此:请注意框中的文件夹命名

我看到的文件与我笔记本电脑上的文件不同

F:\Projects\Project1\public

我做错了什么?我应该如何在我的机器上的F驱动器而不是用户主驱动器上正确运行Homestead?

您在应该使用Linux路径的地方使用Windows路径

Homestead使用运行Linux的虚拟机,Linux不需要知道或关心您现在在F:驱动器而不是C:驱动器上运行Homestead

Homestead的工作方式是将文件夹从Windows操作系统映射到Linux操作系统。然后从Homestead Linux机器内部,它不必知道或关心文件的位置(C:或F:)

你放在任何地方的
/f/
都是不正确的;这在Windows或Linux上都不存在

首先,您需要撤消对以
.sh
结尾的文件所做的任何更改。这些文件在Linux中运行,因此无需修改即可移动到F:

init.sh 宅基地=/f/.homestad

恢复到

homesteadRoot=~/.homestead
接下来,我相信唯一需要的改变是在你的家园。yaml:

folders:
    - map: F:/Projects
      to: /home/vagrant/Code

我已成功地将项目文件夹从C:驱动器移动到D:驱动器。我不得不改变一些宅地文件如下

在Homestead目录中的Vagrantfile中更改以下行

-confDir = $confDir ||= File.expand_path(File.join(Dir.home, ".homestead"))

如果您在Mac或Linux上工作,请在init.sh文件中执行以下更改

#!/usr/bin/env bash

cp -i src/stubs/Homestead.yaml Homestead.yaml
cp -i src/stubs/after.sh after.sh
cp -i src/stubs/aliases aliases

echo "Homestead initialized!"
在Windows上,init.bat文件包含以下更改

@echo off

copy /-y src\stubs\Homestead.yaml Homestead.yaml
copy /-y src\stubs\after.sh after.sh
copy /-y src\stubs\aliases aliases

echo Homestead initialized!
最后,您必须在Headstead.yaml文件的“map”键中指定“Projects”文件夹路径。在我的电脑上,项目文件夹存在于Homestead目录中,地图路径在Headstead.yaml中给出如下

folders:
    - map: D:/vagrant/Homestead/Projects
       to: /home/vagrant/Projects
在gitbash中运行以下命令以重新加载vagrant框

bash init.sh
vagrant reload --provision