什么时候应该使用多站点设置?


13

我有四个相互独立的Drupal站点,除了它们都在Drupal上运行并且都由我管理。

每个站点所需的模块会有所不同,但是它们可能共享一些小的模块子集。

这种情况是否适合使用多站点配置?

如果要添加第五个站点怎么办?我将如何上传新的,或者如何工作?

Answers:


11

由于多站点设置依赖于相同的代码库,因此有些棘手。在这种情况下,您可以使用多站点设置,但是请记住,在中升级模块时sites/all/modules,它将影响所有站点(除非在中被覆盖sites/$SITENAME/modules)。

这会导致潜在的问题,其中您的一个站点依赖于N版本的模块,而您想在另一个站点上使用N + 1。有问题的模块可能没有升级路径,或者它可能在版本之间进行了大幅度的更改(考虑到Drupal朝着主要版本的发展,这并不像您想的那样罕见)。

此外,如果在模块升级期间需要对数据库进行重要更改,您会发现需要同时删除多个站点以确保运行update.php

因此,对于大多数用例而言,多站点并不是要走的路。除非您确实有足够的空间,或者您有一些奇怪的托管限制来阻止将每个站点的域映射到单独的文件夹,否则最好维护单独的代码库,并使用Drush和版本控制之类的工具来加速代码部署。

多站点的典型用例是在您部署大量极为相似的站点时,而不是将其用作限制性主机的解决方法。您可能正在运行托管服务,或者正在为公司构建大量微型站点,或者拥有什么。在这种情况下,您可以滚动自己的多站点设置,但是您还应该考虑使用Aegir,它可以自动运行抽象许多运行此类设置的麻烦。

将新站点添加到多站点设置非常简单:在sites,编辑sites/sites.php(仅Drupal 7)下创建一个新文件夹,复制sites/default/default.settings.phpsettings.php该新文件夹中,然后在浏览器中访问该站点。Drupal应该开始安装过程并使用新文件夹。您的新站点将可以访问sites/all/modules现有站点下的所有模块。


太酷了。这实际上与我关于符号链接和modules文件夹的其他问题有关。我厌倦了每次在开发环境中启动新的测试站点时都必须重复相同的例程,而且我也厌倦了将模块(尤其是自定义模块)复制到多个项目中(使更新复杂化)的问题。因此,我想至少在开发期间可以使用多站点方法。
sameold 2011年

@sameold我用于Drupal开发的是一个git存储库,其中包含我必须使用的模块作为子模块。然后,只需运行git clone git@my.repository.com:/base.git newsite即可获得一个干净的环境。

4
另一种方法是为基本设置添加草绘文件。另一个需要注意的地方是,编辑sites / sites.php是可选的,并且仅在D6中的默认查找不起作用时才需要(例如,针对单个站点具有多个域的多站点)。
Berdir 2011年

2

我会使用一个多站点,在该站点中您可以找到相关的内容,但针对不同的受众。

例如,我们将其用于支持多个品牌的Intranet。这样,每个品牌都可以单独管理,并可以选择共享内容/用户(节省大量时间,减少重复)。

此外,拥有独特的界面(菜单/块/主题)在确保不同部门可以轻松访问对其最重要的内容方面还有很长的路要走。

使用域访问可以使用许多功能,例如允许用户设置其默认站点,按子域设置不同的站点(因此,您可以使用marketing.intranet.local或engineering.intranet.local等),在站点之间进行搜索,访问控制等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.