如何设置Laravel Homestead服务器在本地运行而无需在网络/互联网上?

时间:2015-03-03 02:14:26

标签: laravel nginx vagrant offline homestead

以前,我在VirtualBox上手动设置我自己的VM并对其进行配置,以便在我离线编码时(无互联网/未连接到路由器)也能正常工作。我使用VirtualBox GUI中的设置以及VM上的Apache进行了此操作。

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

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

2 个答案:

答案 0 :(得分:1)

  1. 下载并安装Vagrant和Virtualbox的新副本。
  2. 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
    2. 到我的下载文件夹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 clone https://github.com/laravel/homestead.git Homestead

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

        包含一些文件。

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

          bash init.sh

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

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

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

          2. 注意:这会问一些问题,只需按Enter键或输入yes并按Enter键。 这将在C:\Users\yourusername\.ssh

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

              来配置宅基地

              C:\用户\ digitlimit \宅\ Homestead.yaml

            2. 您可以右键单击Homestead.yaml文件,然后单击“打开”,然后选择使用wordpad打开。

              My 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内。

              所以告诉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的{​​{1}}内容

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

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

              中的hosts文件中
              C:\www\wamp\laravel\public

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

              C:\Windows\System32\drivers\etc\hosts
              
              1. 最后,回到你的Git bash,确保你进入 192.168.10.10 laravel.dev 并输入:

                流浪汉

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

答案 1 :(得分:0)

当您处于脱机状态时,您的开发计算机上运行的任何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