多站点的Drupal托管

如果你正在运行一个以上的Drupal站点,可以简化管理,并可以通过使用多站点功能,升级你的网站。多站点可以让你分享一个Drupal安装(包括核心代码,贡献的模块和主题)的几个地点之一。

这是用于管理代码,因为每次升级只需要进行一次特别有用。每个站点都有自己的数据库和自己的配置设置,让每个网站都会有自己的内容,设置,启用的模块,并启用主题。然而,这些站点共享一个代码库和Web文档根目录,因此可能会有安全问题有多个管理员。 (请参见“安全问题”下面了解更多信息)。

多站点的Drupal托管很难做到的,因为它

过程概述

要使用共享的Drupal代码库必须完成以下步骤创建一个新的网站:

  1. 为该站点创建一个新的数据库(如果已经有一个现有的数据库,你也可以通过在安装过程中定义的前缀使用)。
  2. 创建新网站的名称“网站”目录的一个新的子目录。请参阅下面或在有关如何命名的子目录信息default.settings.php文件中的注释。
  3. 复制文件的网站/默认/ default.settings.php到您在上一步中创建子目录。重命名新文件的settings.php。
  4. 对于Drupal的8只:激活通过复制(和重命名)文件的网站/ example.sites.php到网站/ sites.php多站点功能。有没有必要,除非你需要网站别名编辑文件。正常的选址规则适用。
  5. 调整新站点目录的权限,并授予配置文件(的settings.php)的读写权限。
  6. 如果您使用的是子目录如example.com/subdir,而不是一个子域如subd.example.com你可能要创建符号链接,为每个站点。详情请参阅子目录多站点下面的部分。
  7. 在Web浏览器,导航到新网站的网址,并与标准Drupal安装程序,继续(如果你得到一个无限循环的重定向,检查文件是否存在install.php了文档根目录)。

它也可能需要修改Web服务器的配置文件(Apache的通常命名为httpd.conf)中允许的Drupal覆盖Apache的设置。这是为Drupal的所有安装真实是不特定的多站点安装。更多相关信息的最佳实践可供选择:在安装向导的共享环境部分配置Apache和PHP为Drupal。

多站点的Drupal托管或

工艺细节

域名,URL和站点子目录名

网站目录的新的子目录具有从该网站的网址构建的名称。例如,www.example.com的配置是在网站/ example.com / settings.php中。你并不需要包含的“www”作为目录名称的一部分。

Drupal将使用相同的网站/ example.com目录example.com的任何子域。包括万维网,除非有一种替代,匹配子域站点子目录。例如,URL sub.example.com会从网站/ sub.example.com送达。如果它的存在。

对于一个子目录URL,如example.com/subdir。命名站点子目录如下:网站/ example.com.subdir - 以及越来越多的子目录现场工作阅读下面的部分。

如果你是一个非标准的端口上安装,端口号被视为子域的第一部分。例如,www.example.com:8080可以从网站/ 8080.example.com加载。如果该目录不存在,Drupal的会再去找网站/ example.com。就像一个真正的子域。

网站特定的模块和主题

每个站点配置可以有自己的站点特定的模块和主题,除了安装在标准“模块”和“主题”目录的。要使用特定的网站模块或主题,只需创建站点配置目录中的“模块”或“主题”目录。例如,如果sub.example.com有一个自定义主题,这不应该是给其他网站访问的自定义模块,设置是这样的:

文档根

经常混淆的一个方面是,在一个Drupal多站点安装Web服务器文档根目录是所有网站相同。例如有以下三个站点:example.com,sub.example.com和example.com/site3会有一个单一的Drupal目录和所有站点将被调用同一个index.php文件。

一些主机管理自动创建(即example.com)创建一个新的域或子域,当一个新的目录。在这种情况下,有必要创建域或子域时,使之成为一个符号链接到主目录的Drupal,或者更好的是,将其设置为使用相同的文档根目录为其中已安装的Drupal网站。

子目录多站点

如果您正在试图将Drupal的多站点使用子目录的网址,而不是子域或不同域的网址时,您可能会遇到问题。你会建立一个目录,如网站/ example.com.subdir开始了。并把一个文件的settings.php那里。如果这对你的作品,太棒了!但它可能不会。

本地主机别名本地工作站

在许多系统上,可以在“hosts”文件中创建条目为本地工作站创建本地主机名的别名。通过创建本地主机别名有可能创造的名称,如localdev1.example.com和localdev2.example.com,既为本地计算机。

如果您在您的本地Web根目录的子目录使用另一方面,创建这样一个符号链接:

并命名您的站点文件夹localhost.subdir。

域名变更

一旦一个网站是在生产站点目录下的某个子目录,子目录不应该改名,即使该网站网址的变化。这是因为多个数据库表(例如:系统和文件),包括到引用“网站/ www.mydomain.com。”相反,重命名站点的目录,你可以创建一个符号链接从旧的一个新的URL。导航到网站目录,然后使用以下命令:
$ LN -s /path/to/drupal/sites/old.domainname.com new.domainname.com

安全问题

你可能想使用Drupal的多站点配置重新考虑,在从相同的代码库中运行的所有网站管理员情况是也不是同一个人或同一个高度互信的一小群。其原因是,任何人都具有完全管理权限的Drupal站点可以通过各种手段该网站执行任意PHP代码(即使没有FTP访问该网站),以及任意PHP代码可以从一个网站用来影响其他站点,如果这两个网站都是在同一个HTTP文档根目录和共享相同的Drupal代码。

所以,除非你完全信任你正在考虑从同一个Drupal的代码库运行是有知识,谨慎,并没有恶意网站的管理员,你可能要考虑安装他们的Drupal网站的web服务器的完全独立的区域那些无法通过PHP脚本来相互影响。

偶尔,Drupal是受到安全漏洞。错误其允许Drupal核心代码未经授权的用户访问。一旦黑客访问你的核心代码,他们必须通过一个攻击访问所有multisites。非multisites需要单独的攻击,它可以提供足够的时间,以固定的漏洞。

何时多点

至于是否使用多点安装与否,你可以说一般的规则:

  • 如果网站是相同的客户端,这是简化每个站点的范围,考虑它。
  • 如果网站在功能上相似,使用相同的模块或使用相同的Drupal的分布,考虑它。
  • 如果您已经有限的资源/人事,但很多网站的管理和维护,肯定会考虑它。
  • 如果功能或范围不同,不使用多点。
  • 如果要管理多个发行,不使用多点。
  • 如果客户是不同的,不使用多点。

该Drupalcon奥斯汀(2014)上的多点通话/辩论,其中利弊,并提出了一些建议被广泛的受众用户的视角讨论可在YouTube上。

当您希望您的网站保持高达最新尽可能关于Drupal的模块的安全更新程序,但是当你有不同的功能,这是比较困难的事,因为它需要更多的时间来单独测试每个站点多站点很受欢迎。如果你是做多点,那么更新需要在同一时间为所有的网站,这并不总是可能的运行。如果这是一个问题,或者你有一个非常大的多点,但还是青睐的方式,你可能要考虑探索drush插件叫做DSLM是把多站点管理的方式有点不同,但具有相同的优势。

具有不同功能的网站通常最终会在不同的时间进行升级,因为每个需要测试和备份。网站的更新和备份可与具有或不具有多站点虽然可用drush的@sites目标简化命令来multisites散装应用drush自动化。

建议多站点配置的详细信息

这些都不是硬性规定,但肯定会帮助阻止你画自己与多位角落。

使用Drush管理部署/网站升级

Drush是一个功能强大的CLI,允许针对的Drupal站点脚本命令。当与multisites相结合,他们成为规模更容易管理。 Drush别名(允许参照点的分组/单命令的目标)是至关重要的成功管理大型多站点部署。例如,许多教育机构提供超过100至1000点运行落单的多站点运行multisites。

使用sites.php管理网站

使用附带的网站/ sites.php(Drupal的7.x版)或网站/ sites.example.php(Drupal的8.x.x)来引用网站在基于多点,而不是地址。这将允许您更轻松地部署(例如开发,分期,督促)之间迁移。传统的多点配置是你创建了网站/ my.new.domain.address / settings.php这个目录,但你并不需要使用域作为文件夹名称为它工作。在sites.php你可以像“my.new.domain.address” =>“项目/ VERSION1”的参考。通过这样做,你有可能对开发看起来更像our.dev.address使用sites.php映射,仍然有它指向VERSION1项目/作为其目标。

相关文章

多个站点的Drupal有很多原因,一个系统管理员或开发人员可以选择托管在同一台服务器上的多个站点在多点配置。举例来说,这样的配置可以:...
WP-signup.php WordPress的多站点托管你真的需要一个网络?在多站点网络的网站都是独立的,非常像在WordPress.com的博客分开。他们不喜欢互连其他各种各样的东西...
Drupal的多站点托管你好,欢迎光临。我正在使用Drupal的多站点功能的几个网站,并注意到没有一组,讨论与这样的各种问题以及如何渡。如果任何人有...
WordPress的多域名主机我们的许多用户很快学会自信地管理自己的多个WordPress网站。有些人甚至开始管理客户,朋友和家人WordPress网站。最近,我们的一个...
更改主域WordPress的多站点托管在这个简短的turorial we'll安装WordPress多站点,并给每个站点在网络it's自己独立的顶级域名。更改DNS设置首先,我们需要指向所有域...