我刚开始使用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就可以使这看起来更漂亮,但我们不想创建那么多子域。所以我正在寻找一些关于如何做到这一点的更好的想法。
答案 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
文件夹中的相应符号链接将请求转发给它们。