Laravel 如何将Homestead/VM从运行在C驱动器上移动到F驱动器上?
我目前在Windows 7上从主目录运行Homestead,即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
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