【问题标题】:How to setup Laravel Homestead server to run locally without being on a network/internet?如何设置 Laravel Homestead 服务器以在本地运行而不在网络/互联网上?
【发布时间】:2015-05-03 13:58:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: laravel nginx vagrant offline homestead


    【解决方案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 Homestead

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

    一些文件。

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

      bash init.sh

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

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

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

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

    1. 然后你需要通过编辑Nginx

      来配置homestead

      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 文件后保存您的更改

    注意:在我们可以在主机 Web 浏览器中使用 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 完成其进程。当您看到任何要求允许在您的系统上创建网络适配器的对话框时单击是

    【讨论】:

    • 哥们,你最棒了
    【解决方案2】:

    当您离线时,您的开发机器上运行的任何虚拟机都可以访问。只需确保将开发机器的主机文件设置为设置 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
    

    【讨论】:

    • 您没有连接到互联网并不意味着您没有网络 :) 虚拟机应该可以在离线状态下正常工作(在安装和设置之后)。
    • 网络是指我没有连接到任何路由器。但我禁用了我的网络适配器(完全离线),一切都运行了!
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2015-07-10
    相关资源
    最近更新 更多