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

时间:2016-10-14 18:00:05

标签: php laravel directory-structure laravel-5.3 multiple-projects

我注意到Laravel 5.3每个项目的平均磁盘空间大约需要41MB。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

  • 首先,所有域加载相同的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');
            });
        }
}

创建路径文件后。它应该工作......