我想在我的域中添加一个新的虚拟主机。
例如,我的网站地址为www.example.com
我想通过创建另一个名为test.example.com
的虚拟主机在同一台服务器上显示另一个页面。
如何通过Laravel5
实现它?
www.example.com/test
是可能的,但我想添加test.example.com
。
我正在查看laravel5(routes.php)的文档,但我看不到任何相关信息。
答案 0 :(得分:1)
答案 1 :(得分:0)
虚拟主机由您的服务器配置,而不是由Laravel的路由配置。如果要添加具有子域的虚拟主机,则需要将虚拟主机添加到服务器配置中。
例如,如果你在ubuntu 14中使用nginx https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts
注意:如果您使用的是本地开发环境,您也可以在本地环境中配置虚拟主机,如果您不知道如何操作,则可以向我提供您正在使用的本地开发环境,我会指导你。
答案 2 :(得分:0)
这不是那么容易,但我可以提供理论概述概念如何做到这一点。
我假设您有一张外卡*.example.com
DNS A记录(如果需要,也可以是针对IPv6的AAAA)将所有子域指向您的服务器。
子域必须在Web服务器上配置(Apache,nginx等)。 Laravel默认情况下不应该有任何访问权限。
如果你能写一些shell脚本,你可以这样做。
通常需要 root权限来更改Web Server配置。我会执行 cron job 来触发 shell脚本。如果由Laravel生成或更新的文件由脚本解除,则脚本使用此文件来更新Web服务器配置(脚本应检查语法,以便您不会遇到一些问题),并重新加载/之后重新启动Web服务器。
我对其他Web服务器并不熟悉,但是对于Apache,您可以在配置中包含其他.conf
文件,因此可以做得很好,但也包括一些安全问题。不要忘记使用cron作业重新加载Web服务器。
最后但并非最不重要的一点是,如果您的服务器上的Laravel应用程序是唯一的,那么您可以将服务器上的所有请求发送到Laravel,而您根本不需要关心更改Web服务器配置。 / p>
现在你的新/所有子域将指向Laravel应用程序,但路由器不关心关于子域,所以你必须写你自己的逻辑以一种可以处理 multsites dynamicical 的方式更新路线功能。
那里有一些多站点程序包,也许我们也可以为您服务。