1

以前,我在 VirtualBox 上手动设置我自己的 VM 并对其进行配置,以便在我离线编码时它也可以工作(没有互联网/未连接到路由器)。我使用 VirtualBox GUI 和 VM 上的 Apache 中的设置来完成此操作。

现在我对学习 nginx 很感兴趣,我决定尝试使用 Laravel 的 Homestead。我正在查看的教程似乎假设我将通过网络访问 Homestead VM(即使它当然在同一台 PC 上)。我需要做些什么来确保在我离线时可以访问虚拟机(比如我在飞机或火车上编码时)?每当我重新使用 WiFi 时(即 apt-get 等),我仍然希望能够从 VM 访问互联网。

(注意:我的主机运行的是 Windows 7 64 位)

4

2 回答 2

1
  1. 下载并安装 Vagrant 和 Virtualbox 的新副本。

https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2.msi

http://dlc-cdn.sun.com/virtualbox/4.3.22/VirtualBox-4.3.22-98236-Win.exe

  1. 还可以手动下载 laravel/homestead https://vagrantcloud.com/laravel/boxes/homestead/versions/0.2.2/providers/virtualbox.box

到我的下载文件夹 C:\Downloads\homestead-0-2-2.box

  1. 安装 Virtualbox 和 Vagrant 之后。通过在 git bash 中运行以下命令安装 laravel/homestead(您可以在此处下载 git bash:http: //git-scm.com/downloads)。

    vagrant box 添加 laravel/homestead /c/downloads/homestead-0-2-2.box

  2. 在 C:\users\yourusername 中运行此命令

    git clone https://github.com/laravel/homestead.git

注意:这将创建此文件夹:C:\Users\yourusername\Homestead

带有一些文件。

  1. 仍然在 Git bash 中,进入C:\Users\yourusername\Homestead并运行以下命令:

    重击初始化.sh

注意:这将创建一个C:\Users\yourusername\.homestead包含 Homestead.yaml 和其他一些文件的文件夹

  1. 然后通过运行以下命令生成一个 SSH 密钥,当您想登录到您的 VM 时需要该密钥:

    ssh-keygen -t rsa -C "youremailaddress@youremail.com"

注意:这会问一些问题,只需按 Enter 或键入 yes 并按 Enter。这将在里面创建你的 ssh 密钥C:\Users\yourusername\.ssh

  1. 然后你需要通过编辑Nginx来配置宅基地

    C:\Users\digitlimit\Homestead\Homestead.yaml

您可以右键单击 Homestead.yaml 文件,然后单击打开,然后选择使用写字板打开。

我的 Homestead.yaml 在编辑后看起来是这样的:

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: /wamp/www
      to: /home/vagrant/Code

sites:
    - map: laravel.dev
      to: /home/vagrant/Code/laravel/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

# blackfire:
#     - id: foo
#       token: bar

注意:要了解映射是在主机和虚拟机之间共享文件夹的过程:

我的 laravel 项目位于C:\wamp\www\laravel

安装后,此目录/home/vagrant/Code将位于 VM 内。

所以我告诉 VM 的是,每当你看到 /home/vagrant/Code 引用这个文件夹时 C:\wamp\www\laravel

同样在这:

sites:
        - map: laravel.dev
          to: /home/vagrant/Code/laravel/public

我们在这里说的是当我进入浏览器并输入http://laravel.dev显示其内容/home/vagrant/Code/laravel/public实际上指向C:\www\wamp\laravel\public

编辑 Homestead.yaml 文件后保存您的更改

注意:在我们可以在主机网络浏览器中使用http://laravel.dev来查看我们的 laravel 项目之前,我们需要将以下内容添加到位于的 hosts 文件中

C:\Windows\System32\drivers\etc\hosts

在列出的其他 IP 地址列表(如果有)下添加此 IP 地址:

192.168.10.10 laravel.dev
  1. 最后,回到你的 Git bash,确保你在里面 /c/Users/yourusername/homestead并输入:

    流浪起来

等待 vagrant 完成其进程。当您看到任何要求允许在您的系统上创建网络适配器的对话框时单击是

于 2015-03-03T12:06:25.653 回答
0

当您离线时,您的开发机器上运行的任何 VM 都可以访问。只需确保设置开发机器的主机文件以设置 VM 的位置。

如果你正在关注Laravel Homestead 设置

scripts/homestead.rb中,您将有一行包含 VM 的 IP 地址。

# in scripts/homestead.rb

# Configure A Private Network IP
config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"

将此 IP 地址添加到您的hosts文件中。这通常位于C:\Windows\System32\drivers\etc\hosts

#in hosts file
192.168.10.10  yourwebsite.dev
于 2015-03-03T02:33:20.277 回答