Homestead 多个站点无法正常工作

问题描述 投票:0回答:4

我是 Laravel 的新手,在运行 Homestead 之前,我有一个网站,但添加了另一个网站却不起作用。我摧毁了 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文件的内容

有什么想法吗?

laravel laravel-4 vagrant laravel-5 homestead
4个回答
4
投票

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

现在,只有跑

vagrant reload --provision

重新加载配置文件。

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


4
投票

我想我需要

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

所以一旦你完成了

homestead.yaml
/etc/hosts
文件运行这个

vagrant provision

1
投票

就像here所说的那样,您可以将Homestead直接安装到您的项目中,并在您拥有的每个项目的根目录中使用这个

composer require laravel/homestead --dev
来要求它。现在通过
make
命令,您可以在项目的根目录中生成
Vagrantfile
Homestead.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
,您的虚拟机环境中就会拥有该项目。

当然,

Homestead.yaml
内部有一个
~/.homestead
文件,但vagrant首先会查找位于项目根目录内的
.yaml
文件。就我而言,
~/.homestead/Homestead.yaml
文件被忽略。


0
投票

当我有超过 50 个左右的站点在 apache 下运行时,我在尝试配置时遇到了问题 - 由于添加每个站点后 apache 重新启动需要多长时间,该过程在某个时刻中止。

我的解决方法是执行以下操作:

  1. 复制 homestead.yaml

  2. 暂时删除 homestead.yaml 文件中发生故障的站点之前的所有站点。

  3. 以 root 身份在 /etc/apache2/sites-parked 创建一个新文件夹,并将 /etc/apache2/sites-enabled 中的所有链接移入其中:

    sudo mkdir /etc/apache2/sites-parked; sudo mv /etc/apache2/sites-enabled/* /etc/apache2/sites-parked/; 退出

  4. 再次重新配置 vagrant,以引入所有带有 SSL 证书的新站点

  5. 假设这次一切顺利并且提供过程已完成,请返回并将您之前停放的站点链接移回正确的位置:

    sudo mv /etc/apache2/sites-parked/* /etc/apache2/sites-enabled/; sudo apache2ctl restart;

  6. 恢复原始的完全配置的 homestead.yaml,以便下次需要时拥有这些设置。

我希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.