如何创建具有共享用户和节点的多站点?[关闭]


21

我想用Drupal 7创建一个多站点:每个站点都可以独立工作,但是用户和节点必须在站点之间共享。

我该如何实现?

Answers:


17

您可以将Drupal站点使用的settings.php文件中包含的数据库访问设置更改为类似于以下内容的设置(将括号之间的值替换为您的站点的正确值):

$databases['default']['default'] = array(
  'driver' => '[Your database engine]',
  'database' => '[Your database name]',
  'username' => '[Your username for the access to the database engine]',
  'password' => '[The password for the access to the database]',
  'host' => 'localhost',
  'prefix' => array(
    'default'   => 'main_',
    'users'     => 'shared_',
    'sessions'  => 'shared_',
    'role'      => 'shared_',
    'authmap'   => 'shared_',
  ),
  'collation' => 'utf8_general_ci',
);

1
如果我没看错,则此配置仅在您有一个用于不同站点的数据库时才有用(因此您必须提供前缀)。是否可以共享来自不同数据库的用户表?
ccamara 2012年

2
@CarlosCámara您不正确,此解决方案对所有站点使用相同的数据库,但使用不同的表前缀。因此,在上面的示例中,大多数表将以“ main_”为前缀,但是用户,会话,角色和authmap表将以“ shared_”为前缀。对于其他站点,您将对'default'使用不同的前缀(例如'site2 _','site_3'等),但使用相同的'shared_'前缀。此信息可能应该汇总到答案中。
大林2012年

嗨,我应该更改哪一行来获取用户和个人资料?
泰勒·德登

4
只是指出,当达林说卡洛斯不正确时,卡洛斯是完全正确的,因为达林继续陈述完全相同的事情。
leexonline 2014年

11

域访问模块的作用是在不同域之间共享用户和内容。本质上,它允许您从同一数据库运行多个Drupal站点,并共享内容。

在安装,启用和配置模块时,节点编辑页面上会显示一个新选项卡,您可以使用该选项卡将节点定位到特定域。它也可以很好地与使用ctools选择规则的视图,面板和其他模块一起使用。

此解决方案不同于真正的多站点,后者是一组通用的核心文件和贡献文件,但针对不同站点的数据库却不同。


我们已经成功地将Domain Access用于两个项目,其中一些或所有内容/用户需要在不同站点之间共享。
drmonkeyninja 2012年

好的,我需要共享模块,主题,用户和所有配置,例如当在所有站点中运行配置模块时。实际上,我的站点是一个多语言站点,其中包含对所有站点应用更改时所用的每种语言的数据库。这些更改可以是字段,也可以安装模块

域访问和在多个站点之间共享相同内容的一个方面是,如果您只想在特定站点上显示特定内容,则需要其他模块将内容分开。域访问及其随附的模块可以很好地完成此任务,域访问从与内置在多站点中的drupal相反的角度解决了多站点问题。
leexonline 2014年

2

这有点复杂,但是您可以创建一个具有共享用户和多个数据库的多站点环境。我想如果您要使用共享用户和节点创建单独的数据库会变得非常复杂。请查看此文档,以了解有关具有优缺点的不同设置的更多信息。

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.