使用子域的Laravel多站点设置

时间:2017-02-22 07:08:02

标签: php laravel multisite

我想按照以下要求构建Laravel CMS:

  1. 管理员(管理所有网站/数据库)。
  2. 多站点(在子域上运行,管理自己的数据库),每个站点都有API访问权限。
  3. 相同的代码库(如果需要可以复制)。
  4. 相同的数据库,每个站点都有不同的数据。
  5. 您能否告诉我如何使用Laravel 5.4设置此环境。

    感谢。

2 个答案:

答案 0 :(得分:3)

这个项目现在已经完成。所以发布我自己的问题解决方案。

以下是需要注意的要点:

  • 我使用过Laravel 5.4(后来升级到5.5)。
  • 对于Laravel使用Landlord扩展名的多租户。
  • 服务器配置为侦听通配符子域。
  • 每个网站都在子域上运行。
  • 在每个数据库表下使用具有site-id(tenant-id)的单个数据库。

每当服务器获得请求时,子域与中间件&中的租户ID匹配。仅加载该租户的所有记录。

我希望这可以帮助别人。

答案 1 :(得分:0)

要构建具有以下要求的Laravel CMS,您需要使用:

您可以使用政策和大门设置管理员角色或使用委托 对于多站点,您可以使用类似https://github.com/hyn/multi-tenant的内容,因此如果您使用多租户,则可以

  • 多站点(在子域上运行,管理自己的数据库)各自 API访问。相同的代码库(如果需要可以复制)。相同 每个站点都有不同数据的数据库。

对于config子域,您可以阅读官方文档https://laravel.com/docs/5.4/routing#route-group-sub-domain-routing