如何通过laravel5(路由)添加新的虚拟主机?

时间:2017-10-12 01:34:50

标签: php laravel routes virtualhost

我想在我的域中添加一个新的虚拟主机。

例如,我的网站地址为www.example.com

我想通过创建另一个名为test.example.com的虚拟主机在同一台服务器上显示另一个页面。

如何通过Laravel5实现它?

www.example.com/test是可能的,但我想添加test.example.com

我正在查看laravel5(routes.php)的文档,但我看不到任何相关信息。

3 个答案:

答案 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)

这不是那么容易,但我可以提供理论概述概念如何做到这一点。

DNS记录

我假设您有一张外卡*.example.com DNS A记录(如果需要,也可以是针对IPv6的AAAA)将所有子域指向您的服务器。

Web服务器配置

子域必须在Web服务器上配置(Apache,nginx等)。 Laravel默认情况下不应该有任何访问权限。

使用shell / bash脚本配置Web服务器

如果你能写一些shell脚本,你可以这样做。

通常需要 root权限来更改Web Server配置。我会执行 cron job 来触发 shell脚本。如果由Laravel生成或更新的文件由脚本解除,则脚本使用此文件来更新Web服务器配置(脚本应检查语法,以便您不会遇到一些问题),并重新加载/之后重新启动Web服务器。

使用Laravel

生成的外部配置文件

我对其他Web服务器并不熟悉,但是对于Apache,您可以在配置中包含其他.conf文件,因此可以做得很好,但也包括一些安全问题。不要忘记使用cron作业重新加载Web服务器。

只有Laravel

最后但并非最不重要的一点是,如果您的服务器上的Laravel应用程序是唯一的,那么您可以将服务器上的所有请求发送到Laravel,而您根本不需要关心更改Web服务器配置。 / p>

Laravel Multsite

现在你的新/所有子域将指向Laravel应用程序,但路由器不关心关于子域,所以你必须写你自己的逻辑以一种可以处理 multsites dynamicical 的方式更新路线功能。

那里有一些多站点程序包,也许我们也可以为您服务。