Homestead 多个站点无法正常工作

Homestead multiple sites not working

我是 laravel 的新手,运行ning homestead 在添加另一个网站之前我有一个网站不起作用。我摧毁了宅基地并再次开始并在 homestead.yaml 文件的站点部分添加了两个站点我的 homestead.yaml 文件的蓝图如下

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/laravel
      to: /home/vagrant/laravel

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

    - map: project2.dev 
      to: /home/vagrant/laravel/project2/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

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

# ports:
#     - send: 93000
#       to: 9300
#     - send: 7777
#       to: 777
#       protocol: udp

我在我的 /etc/hosts 文件中添加了这两个站点,蓝图如下

#laravel maps
192.168.10.10 project1.dev
192.168.10.10 project2.dev

但是当我 运行 project1.dev 或 project2.dev 他们都向我显示 project1.dev 文件的内容

有什么想法吗?

我想我需要 vagrant provision 命令来重新启动服务器并注册我所做的更改

所以一旦你完成 homestead.yaml/etc/hosts 文件 运行 这个

vagrant provision

就像 here 所说的那样,您可以将 Homestead 直接安装到您的项目中,在您拥有的每个项目的根目录中使用此 composer require laravel/homestead --dev 来要求它。现在通过 make 命令你可以在项目的根目录中生成 VagrantfileHomestead.yaml 文件。

  • Mac/Linux:

    php vendor/bin/homestead make
    
  • Windows:

    vendor\bin\homestead make
    

在每个项目根目录下,您将有一个要编辑的 Homestead.yaml 文件:

  • 项目-A

    ip: "192.168.10.10"
    ...
    folders:
        - map: "~/Code/projecta"
          to: "/home/vagrant/projecta"
    sites:
        - map: project.a
          to: "/home/vagrant/projecta/public"
    
  • 项目-B

    ip: "192.168.10.11"
    ...
    folders:
        - map: "~/Code/projectb"
          to: "/home/vagrant/projectb"
    sites:
        - map: project.b
          to: "/home/vagrant/projectb/public"
    

将此添加到 /etc/hosts:

    192.168.10.10 project.a
    192.168.10.11 project.b

然后你必须 cd 到每个项目的根目录和 vagrant up。 现在,如果您 vagrant ssh 来自每个项目,您将在您的 VM 环境中拥有该项目。

当然 ~/.homestead 里面有一个 Homestead.yaml 文件,但是 vagrant 首先去项目根目录里面的 .yaml 文件。在我的例子中,~/.homestead/Homestead.yaml 文件被忽略了。

您不能在文件上使用制表符,只能使用空格缩进,这将解决问题。

现在只有运行

vagrant reload --provision

重新加载配置文件。

注意:如果您使用 vagrant destroy 和 vagrant up,您将丢失 VM 上的所有内容。