【问题标题】:Homestead multiple sites not working宅基地多个站点无法正常工作
【发布时间】:2015-08-02 10:13:49
【问题描述】:

我是 laravel 的新手,在运行宅基地之前,我有一个站点,然后添加另一个站点不起作用。我摧毁了宅基地并再次开始,并在 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 文件的内容

有什么想法吗?

【问题讨论】:

    标签: laravel laravel-4 vagrant laravel-5 homestead


    【解决方案1】:

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

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

    vagrant provision
    

    【讨论】:

    • 您还需要做什么?即使我使用提到的命令进行配置,我也遇到了同样的问题:'vagrant provision' @Amjad
    • 有什么问题@tblancog,运行vagrant provision解决了我当时所有的问题。
    【解决方案2】:

    你不能在文件上使用制表符,只能使用空格来缩进,这样就可以解决问题。

    现在,只运行

    vagrant reload --provision
    

    重新加载配置文件。

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

    【讨论】:

      【解决方案3】:

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

      • Mac/Linux:

        php vendor/bin/homestead make
        
      • 窗户:

        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 文件被忽略了。

      【讨论】:

      • 为什么要为每个项目创建一个新的虚拟机?
      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多