如何在不在 network/internet 上的情况下将 Laravel Homestead 服务器设置为本地 运行?

How to setup Laravel Homestead server to run locally without being on a network/internet?

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

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

(注:我的主机是运行 Windows7 64位)

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

如果您正在关注 Laravel Homestead Setup

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
  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 add laravel/homestead /c/downloads/homestead-0-2-2.box

  2. 运行 这个命令在 C:\users\yourusername

    git克隆https://github.com/laravel/homestead.gitHomestead

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

有一些文件。

  1. 还是在Gitbash,cd到C:\Users\yourusername\Homestead和运行这个命令:

    bash init.sh

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

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

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

注意:这将询问一些问题,只需按回车键或输入是并按回车键。 这将在 C:\Users\yourusername\.ssh

中创建您的 ssh 密钥
  1. 然后你需要通过编辑Nginx

    来配置homestead

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

您可以right-click 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

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

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

这个目录/home/vagrant/Code将在安装后的虚拟机中。

所以我告诉 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 文件后保存您的更改

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

的主机文件中
C:\Windows\System32\drivers\etc\hosts

在列出的其他 ip 地址列表下添加此 ip 地址:

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

    流浪起来

等待 vagrant 完成其进程。当您看到任何对话框要求获得在您的系统上创建网络适配器的权限时,请单击“是”