一个域下的多个Laravel应用

时间:2016-04-09 00:47:44

标签: php apache laravel

我刚开始使用Laravel,刚刚完成了一些基本的应用程序。我正试图通过我们的组织提出一个更广泛使用Laravel的计划。我试图找出如何在不必创建大量Apache vhost的情况下安装多个Laravel。

在我们公司内部,我们有许多部门,每个部门都有各种内部和公共表格和/或应用程序。我们的网站结构全部由Linux服务器上的同一个Apache实例提供服务,我们偶尔会使用虚拟主机来分隔某些特定部分,而不是部门(因为它真的很难)。我们在网络服务器上的结构看起来像这样:

/
/department1/someapp
            /anotherapp
/department2/internalapp
            /anotherform
/department3
...and so on

所以人们基本上可以访问它:www.company.com/department1/someapp等...我们有大约30个不同的部门,其中包含一个大约52,000个html和php文件的网站,包含程序性的php,javascript和简单的HTML。

因此,我在多个安装中看到的问题会产生类似于以下内容的访问:

www.company.com/department1/app1/public
                            app2/public
www.company.com/department2/app1/public etc...

显然,只要能够使用department1.company.com或department2.company.com访问应用程序,vhost就可以使这看起来更漂亮,但我们不想创建那么多子域。所以我正在寻找一些关于如何做到这一点的更好的想法。

2 个答案:

答案 0 :(得分:0)

Laravel应用程序的入口点是 index.php 文件(https://github.com/laravel/laravel/blob/master/public/index.php)。因此,只要您有一个 .htaccess 文件通过此前端控制器传递所有请求,您就可以将自动加载和引导路径更改为您心脏的内容。

答案 1 :(得分:0)

我相信Linux symlinks可以解决您的任务。它们是一种廉价的干净方法,可以将您的前端请求转发到Linux服务器文件夹。

您希望根据向部门提供的Web服务安装所需数量的Laravel(或任何其他软件)实例。

您可以在服务器上拥有一个美观的入口点,例如www.mycompany.com指向单个vhost文件夹的/sites入口。

然后,一旦您在服务器上/accounting文件夹下拥有会计部门Laravel Web应用程序(或网站)以访问具有www.mycompany.com/accounting地址的网站,就必须创建{{1} } accounting文件夹中的符号链接,此符号链接应指向您的Laravel应用程序的/sites文件夹。

因此,您可以创建所需数量的应用程序,并通过/accounting/public文件夹中的相应符号链接将请求转发给它们。