如何让一个 Laravel PHP 安装多个项目?

How can I have one Laravel PHP install with multiple projects?

我注意到 Laravel 5.3 每个项目平均占用磁盘 space 大约 41MB。

是否有一种简洁的配置方式,以便 Laravel 在我的 PHP 服务器(专用于 Laravel-only 的东西)上安装一次,然后有多个项目(一些作为单独的域,一些作为子目录)使用相同的 Laravel 实例?

例如,我可以 /usr/share/laravel 并将所有内容都放在那里,但是在 /var/www 中,我可以将我的每个域 (/var/www/test1.com, /var/www/test2.com) 和域上的子文件夹 (/var/www/test1.com/project2),然后它们都将使用相同的 /usr/share/laravel.

好吧,我上次尝试的解决方案有点不同。无论如何,我认为这是一个好方法或最好的方法。但它到目前为止有效:

  • 首先所有域加载相同的 laravel 项目
  • 自定义路由服务提供商

所以首先对 RouteServiceProvider 的更改:

public function map(Router $router)
{
       if (strstr(Request::getHost(), 'domain_one')) {
            $router->group([
                'namespace' => $this->namespace,
                'middleware' => ['default_middle_wares'],
            ], function ($router) {
                require app_path('Http/Routes/domain_one.php');
            });
        }

        if (strstr(Request::getHost(), 'domain_two')) {
            $router->group([
                'namespace' => $this->namespace,
                'middleware' => ['default_middle_wares'],
            ], function ($router) {
                require app_path('Http/Routes/domain_two.php');
            });
        }
}

创建路由文件后。它应该可以工作...

您可以使用符号链接,我从未尝试过,但我想这将涉及为每个应用程序创建单独的目录,然后创建指向共享供应商目录(包括 Laravel)的符号链接。

这将允许您单独对所有应用程序特定文件进行版本控制,但共享依赖项。不过请注意,如果您的 composer.json 文件列出了不同的版本,您可能 运行 会遇到麻烦。