通过设定sites目录实现drupal多站点支持

九门提督

翻译的很蹩脚,感兴趣的直接看原文Setup of sites directory for multi-site

Drupal默认安装有多站点兼容系统,可以使用单主机帐号来运行众多的网站。使用一套Drupal安装代码可以用来运行多个域名,在代码管理方面非常容易,就算你只有一个域名,也可以此特性来运行子域名站点或者测试开发版。
在Drupal 5 中,所有的非核心元素都在sites目录下提供有独立目录。本文讨论的是设定sites目录来支持多域名网站,单域名站点可以去基础sites目录设定查看相关信息。

目录 内容
/drupal/sites/all

(所有站点通用)

/modules
/themes
/drupal/sites/default
(/sites/example.com
目录不存在时生效)
/files
settings.php
/drupal/sites/example1.com /files
/modules
/themes
/tmp
settings.php
/drupal/sites/example2.com /files
/modules
/themes
/tmp
settings.php

最好的解决方案是每个域名都在 sites 目录下创建一个类似 /sites/example.com 的目录,至少包含一个 setting.php 文件和 /files 目录。然后在 Drupal 中设定“文件系统路径”为把 files 改为sites/example.com/files ,如果在既有内容的站点中执行这个操作可能会导致原有文件连接指向失效,并且引起一系列未知问题。

域名所涉及的额外模块和模板文件也应当放置到相应的 /sites/example.com/modules /sites/example.com/themes 目录中。

多域名公用的第三方模块以及模板文件应当放在 /sites/all/modules /sites/all/themes 目录里。注意:/sites/all/files /sites/all/settings.php 不应出现。
/sites/default 目录用来存放没有被 /sites/example.com 对应的其他域名所需的 /files 和 settings.php设定。

除了并列多域名站点,对于子域名站点的设定也很方便,如果你想增加sub3.example2.com 和 sub3.example2.com/site4 这样的域名,那么设定目录应该类似如下结构:

  1. /drupal/sites/all/modules
  2. /drupal/sites/all/themes
  3. /drupal/sites/default/files
  4. /drupal/sites/default/settings.php
  5. /drupal/sites/example1.com/files
  6. /drupal/sites/example1.com/modules
  7. /drupal/sites/example1.com/settings.php
  8. /drupal/sites/example1.com/themes
  9. /drupal/sites/example1.com/tmp
  10. /drupal/sites/example2.com/files
  11. /drupal/sites/example2.com/modules
  12. /drupal/sites/example2.com/themes
  13. /drupal/sites/example2.com/tmp
  14. /drupal/sites/example2.com/settings.php
  15. /drupal/sites/sub3.example2.com/files
  16. /drupal/sites/sub3.example2.com/modules
  17. /drupal/sites/sub3.example2.com/settings.php
  18. /drupal/sites/sub3.example2.com/themes
  19. /drupal/sites/sub3.example2.com/tmp
  20. /drupal/sites/sub3.example2.com.site4/files
  21. /drupal/sites/sub3.example2.com.site4/modules
  22. /drupal/sites/sub3.example2.com.site4/settings.php
  23. /drupal/sites/sub3.example2.com.site4/themes
  24. /drupal/sites/sub3.example2.com.site4/tmp

  • 这样一来,你的站点结构将会非常清晰明了,Drupal的主目录将只有标准的核心代码。
  • 所有你的自定义模板、模块、设定等将存放于
    /sites/example.com, /sites/all, 或者 /sites/default 目录中。
  • /sites/default/settings.php 和 /files 将用来处理未指定的域名设定。
  • /sites/all/modules 和 /themes 将作用于所有域名。
  • 如果你要迁移服务器,或者遇到了系统崩溃,只需要在这之前备份 /sites目录和你的数据库数据就可以了。
  • 如果简单增加域名,就把 /sites/default 拷贝一份到 /sites/example5.com 。

    某些情况下你可以使用符号连接来实现一些特性:

    就算你计划为一个域名使用默认设定,最好也创建一个指向 /sites/default 目录的 /sites/example.com 符号连接。这样做的话,以后如果需要自定义设定,那么将 /sites/example.com 替换为实际目录就可以,实际位置和连接都会保持

    可以通过这种方式将你的主域名设定指向 /sites/default 目录。

    文件目录可以不通过其他域名共享给两个域名

    可以设定不含域名路径的文件目录,如果实际域名可能更改(例如开发版本),那么你可以设定一个短目录例如 moniker ,并且用 /drupal/sites/example.com 来指向他,这样就算 example.com 域名的变化也不会影响文件链接。

    尽管 /sites/default 目录可以包含 /modules 和 /themes 目录,还是尽量把这俩目录放在/sites/all 或者 /sites/example.com 下。同样的,也不建议把自定义模块放在 /drupal/modules 目录下。

    有关子域名多站点目录设定,可以在安装介绍文档中找到(INSTALL.txt)。

    使用 multidomain 模块,可以将一个站点展开为多个域名,这样可以根据不同域名来展现站点的不同内容。

    Drupal 4.6 和 4.7: 最佳实践方式和 Drupal 5 类似。主要的区别在于没有 /sites/all 目录,全局化模块和风格设定位于 /drupal/modules 和 /drupal/themes目录中。

  • 评论内容

    发表评论

    • 输入内容会自动换行、分段。

    有关输入格式的详细解释