Laravel 5.2 - 每个域的 Homestead 相同站点加载

Posted

技术标签:

【中文标题】Laravel 5.2 - 每个域的 Homestead 相同站点加载【英文标题】:Laravel 5.2 - Homestead same site loading for every domain 【发布时间】:2016-04-17 20:14:58 【问题描述】:

无论出于何种原因,我都无法让多个网站与 Homestead 合作。添加的每个新站点,当我在浏览器中访问它时返回相同的站点

我已经尝试了我在堆栈和 larvel.io 上遇到的所有“解决方案”。他们都没有解决问题。任何帮助将不胜感激。

以下是我的 .yaml 文件和主机文件的内容。

本地目录结构:

 Root directory = WWW
 project1       = WWW/project1
 project2       = WWW/project2

Homestead.yaml:

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

 authorize: ~/.ssh/id_rsa.pub

 keys:
     - ~/.ssh/id_rsa

 folders:
     - map: ~/WWW
       to: /home/vagrant/Code

 sites:
     - map: /project1.app
       to: /home/vagrant/Code/project1/public
     - map: /project2.dev
       to: /home/vagrant/Code/project2/public

 databases:
     - project1_db
     - project2_db

 variables:
     - key: 'APP_ENV'
       value: 'local'
     - key: 'APP_DEBUG'
       value: 'true'

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

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

/etc/hosts 文件:

 ##
 # Host Database
 #
 # localhost is used to configure the loopback interface
 # when the system is booting.  Do not change this entry.
 ##
 127.0.0.1 localhost
 255.255.255.255    broadcasthost
 ::1 localhost 

 192.168.10.10 project1.app
 192.168.10.10 project2.dev

我尝试了以下方法:

    流浪规定 vagrant reload --provision 被摧毁的盒子和流浪汉 vagrant global-status,后跟 vagrant provision vm# 还尝试映射文件夹和站点

例如:

 folders:
     - map: ~/WWW/project1
       to: /home/vagrant/Code/project1

     - map: ~/WWW/project2
       to: /home/vagrant/Code/project2

 sites:
      - map: /project1.app
        to: /home/vagrant/Code/project1/public
      - map: /project2.dev
        to: /home/vagrant/Code/project2/public

【问题讨论】:

【参考方案1】:

首先,一个提示:使用 nfs,因为 windows 文件夹共享非常非常慢。要在 Windows 上添加对此功能的支持,您应该安装 vagrant-winnfsd

vagrant plugin install vagrant-winnfsd

folders:
    - map: ~/WWW
      to: /home/vagrant/Code
      type: nfs

以防万一删除站点主机名前的斜线。我不确定这是否是原因,但这是我在您的配置中发现的唯一错误。

sites:
    - map: project1.app
      to: /home/vagrant/Code/project1/public
    - map: project2.dev
      to: /home/vagrant/Code/project2/public

另一个提示:安装 vagrant-hostsupdater 插件以自动将主机名添加到主机文件中。

vagrant plugin install vagrant-hostsupdater

在你的 Homestead.yaml 文件中:

aliases: ["project1.app", "project2.dev"]

在脚本/homestead.rb 文件中:

config.hostsupdater.aliases = settings["aliases"]

我的文件:homestead.rb 和 Homestead.yaml

【讨论】:

【参考方案2】:

知道了。

导致问题的域前的斜线。

改变了这个:

sites:
    - map: /project1.app
      to: /home/vagrant/Code/project1/public
    - map: /project2.dev
      to: /home/vagrant/Code/project2/public

到这里:

sites:
    - map: project1.app
      to: /home/vagrant/Code/project1/public
    - map: project2.dev
      to: /home/vagrant/Code/project2/public

【讨论】:

以上是关于Laravel 5.2 - 每个域的 Homestead 相同站点加载的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 SSH 的情况下在 GoDaddy 共享主机中托管 Laravel 5.2?

如何在laravel 5.2中为每个文件添加用户ID以供下载?

Laravel 5.2 会话不持久

Laravel 5.2 Eloquent ORM 从 3 个表中获取数据

要查看的关系数据 - Laravel 5.2

Summernote 显示在所有位置(Laravel 5.2)