Homestead多个站点无法正常工作

时间:2015-05-20 23:18:29

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

我是laravel的新手,并且在运行宅基地之前我有一个站点,然后添加另一个站点无效。我摧毁了宅基地并再次启动并在homestead.yaml文件中的Sites部分添加了两个站点,我的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文件的内容

任何想法?

3 个答案:

答案 0 :(得分:3)

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

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

`vagrant provision`

答案 1 :(得分:1)

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

现在,只运行

vagrant reload --provision

重新加载配置文件。

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

答案 2 :(得分:0)

here所说的一样,您可以将Homestead直接安装到您的项目中,在您拥有的每个项目的根目录下使用此composer require laravel/homestead --dev来要求它。现在通过make命令,您可以将VagrantfileHomestead.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.yaml内有一个~/.homestead文件,但是vagrant会先找到位于项目根目录内的.yaml文件。就我而言,~/.homestead/Homestead.yaml文件被忽略。