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以供下载?