如何将C盘的运行的Homestead/VM移动到F盘?
How to move Homestead/VM from running on the C drive to the F drive?
我目前在主目录 Windows 7 上有 Homestead 运行ning,即 C:/Users/username
我的 C
驱动器在 space 上 运行ning 很低并且没有突袭。但是,我有另一个标有 "F" 的驱动器,它有 raid 0 以帮助在 HD 崩溃的情况下保持我的 data/files 更安全,它还有更多存储空间 space.
我想把我的 Homestead 和项目移动到 F 盘。
这是我到目前为止所做的。
我从命令行执行了以下命令
f:
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
mkdir Projects
然后我用下面的代码
编辑了位于F:/Homestead
的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!"
然后使用 Git Bash 我从 F:\Homestead
执行了以下命令
bash init.sh
然后我在F盘手动创建了.ssh
文件夹,然后像这样创建了我的rsa密钥
mkdir .ssh
ssh-keygen -t rsa -C "you@homestead"
最后,我更新了 Homestead.yaml 看起来像这样
---
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
然而,当我转到 192.168.10.10:8000
时,我一直收到 No input file specified.
然后当我尝试像这样通过 SSH 连接到服务器时
vagrant SSH
我找到了与预期不同的路径 "or defined in my Homestead.yaml" 这就是我所看到的
cd /home/vagrant/Projects/Projects1/Project1
因此:请注意框中的文件夹命名
我看到的文件与我笔记本电脑上的文件不同
F:\Projects\Project1\public
我做错了什么?我应该如何正确 运行 我机器上的 Homestead 在 F 驱动器上而不是在用户主驱动器上?
您在应该使用 Linux 路径的地方使用了 Windows 路径。
Homestead 使用虚拟机 运行ning Linux,Linux 不需要知道或关心您现在 运行ning Homestead 在您的F: 驱动器而不是 C: 驱动器。
Homestead 的工作方式是将文件夹从 Windows 操作系统映射到 Linux 操作系统。然后在 Homestead Linux 机器内部,它不必知道或关心文件所在的位置(C: 或 F:)。
你把 /f/
放在的所有地方都不正确;这在 Windows 或 Linux 上都不存在。
首先,您需要撤消对以 .sh
结尾的文件所做的任何更改。 Linux 中的这些文件 运行,因此不需要修改此移动到 F:.
init.sh
homesteadRoot=/f/.homestead
恢复到
homesteadRoot=~/.homestead
接下来,我认为唯一需要更改的是您的 Homestead.yaml:
folders:
- map: F:/Projects
to: /home/vagrant/Code
我已成功将我的项目文件夹从 C: 驱动器移动到 D: 驱动器。我不得不如下更改几个宅基地文件。
更改 Homestead 目录中 Vagrantfile 中的以下行
-confDir = $confDir ||= File.expand_path(File.join(Dir.home, ".homestead"))
至
confDir = $confDir ||= File.expand_path(File.dirname(__FILE__))
如果您正在处理 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' 文件夹路径。在我的电脑上,Projects 文件夹存在于 Homestead 目录中,map 路径在 Headstead.yaml.
中给出如下
folders:
- map: D:/vagrant/Homestead/Projects
to: /home/vagrant/Projects
运行 按照 Git Bash 中的命令重新加载 vagrant box。
bash init.sh
vagrant reload --provision
我目前在主目录 Windows 7 上有 Homestead 运行ning,即 C:/Users/username
我的 C
驱动器在 space 上 运行ning 很低并且没有突袭。但是,我有另一个标有 "F" 的驱动器,它有 raid 0 以帮助在 HD 崩溃的情况下保持我的 data/files 更安全,它还有更多存储空间 space.
我想把我的 Homestead 和项目移动到 F 盘。
这是我到目前为止所做的。
我从命令行执行了以下命令
f:
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
mkdir Projects
然后我用下面的代码
编辑了位于F:/Homestead
的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!"
然后使用 Git Bash 我从 F:\Homestead
执行了以下命令bash init.sh
然后我在F盘手动创建了.ssh
文件夹,然后像这样创建了我的rsa密钥
mkdir .ssh
ssh-keygen -t rsa -C "you@homestead"
最后,我更新了 Homestead.yaml 看起来像这样
---
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
然而,当我转到 192.168.10.10:8000
时,我一直收到No input file specified.
然后当我尝试像这样通过 SSH 连接到服务器时
vagrant SSH
我找到了与预期不同的路径 "or defined in my Homestead.yaml" 这就是我所看到的
cd /home/vagrant/Projects/Projects1/Project1
因此:请注意框中的文件夹命名
我看到的文件与我笔记本电脑上的文件不同
F:\Projects\Project1\public
我做错了什么?我应该如何正确 运行 我机器上的 Homestead 在 F 驱动器上而不是在用户主驱动器上?
您在应该使用 Linux 路径的地方使用了 Windows 路径。
Homestead 使用虚拟机 运行ning Linux,Linux 不需要知道或关心您现在 运行ning Homestead 在您的F: 驱动器而不是 C: 驱动器。
Homestead 的工作方式是将文件夹从 Windows 操作系统映射到 Linux 操作系统。然后在 Homestead Linux 机器内部,它不必知道或关心文件所在的位置(C: 或 F:)。
你把 /f/
放在的所有地方都不正确;这在 Windows 或 Linux 上都不存在。
首先,您需要撤消对以 .sh
结尾的文件所做的任何更改。 Linux 中的这些文件 运行,因此不需要修改此移动到 F:.
init.sh homesteadRoot=/f/.homestead
恢复到
homesteadRoot=~/.homestead
接下来,我认为唯一需要更改的是您的 Homestead.yaml:
folders:
- map: F:/Projects
to: /home/vagrant/Code
我已成功将我的项目文件夹从 C: 驱动器移动到 D: 驱动器。我不得不如下更改几个宅基地文件。
更改 Homestead 目录中 Vagrantfile 中的以下行
-confDir = $confDir ||= File.expand_path(File.join(Dir.home, ".homestead"))
至
confDir = $confDir ||= File.expand_path(File.dirname(__FILE__))
如果您正在处理 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' 文件夹路径。在我的电脑上,Projects 文件夹存在于 Homestead 目录中,map 路径在 Headstead.yaml.
中给出如下folders:
- map: D:/vagrant/Homestead/Projects
to: /home/vagrant/Projects
运行 按照 Git Bash 中的命令重新加载 vagrant box。
bash init.sh
vagrant reload --provision