tinkersmith/raini-acquia

Raini Console 的 Drupal 脚本和命令。

安装: 937

依赖项: 0

建议者: 0

安全: 0

星级: 0

分支: 0

类型:raini-extension

dev-main 2024-08-28 23:05 UTC

This package is auto-updated.

Last update: 2024-09-29 03:20:49 UTC


README

此扩展添加 Acquia 主机设置和 Acquia Cloud 主机推荐 Drupal 模块。

安装

此扩展需要 tinkersmith/raini-drupal Composer 包,该包为标准 Drupal 网站提供设置。为了与 Acquia 主机兼容,将 Drupal 项目设置中的缓存类型更改为 memcache,因为这是 Acquia Cloud 主机提供的内容。

配置

  • ClamAV (bool) - 添加 ClamAV 设置并包含 Drupal 模块。
  • solrSearch (bool) - 包含并设置 Acquia Search。
  • includeHooks (init, overwrite, false) - 包含扩展的默认 Acquia 云钩。
  • notifyType (string) - 发送错误或状态消息时在 /hooks/includes 中使用的 API 名称。默认为 "none",仅使用默认终端显示。
  • useConfigSplit (init, overwrite, false) - 包含 Acquia 环境配置_split 配置(同时安装 drupal/config_split)。

示例配置(raini.project.yml)

extensions:
    raini-acquia:
        clamAV: true
        solrSearch: true
        includeHooks: init
        notifyType: slack
        useConfigSplit: init

包含的包

将额外的 Composer 包引入 Drupal 网站安装

此扩展会将以下包添加到每个安装中

  • Acquia Memcache 设置(acquia/memcache-settings
  • Acquia 环境检测器(acquia/drupal-environment-detector
  • Acquia 连接器(drupal/acquia_connector
  • Acquia 清除(drupal/acquia_purge

如果项目使用并安装了 Search API Solr(《drupal/search_api_solr》),则条件性地安装 Acquia Search(《drupal/acquia_search》)模块,因为这不仅是 Acquia Search 模块的要求,也是使用 Search API 和 Apache Solr 实现搜索的意图(推荐使用《tinkersmith/drupal-solr》进行本地设置)。

强烈推荐使用以下内容

  • Config Ignore(《drupal/config_ignore》)
  • Config Split(《drupal/config_split》)

这些可以帮助将 Acquia 模块分离到 config_split,以便仅在 Acquia 服务器上启用,而不是在本地开发环境中启用。您可能还需要进一步分割开发环境和生产环境的配置。

以下推荐分割

  • acquia - Acquia 主机环境:Acquia 连接器、Acquia 清除、Acquia Search。
  • prod - 实际网站的配置:GTM
  • local - 本地开发工具,如:develop、staged_file_proxy

多站设置

对于 Acquia 上的多站安装,您应该在 /hooks/includes/sites.json 文件中填写每个站点的相关数据库和站点 URI 信息。由于环境变量(shell 和 .env 文件)不支持结构化数据或嵌套数组,且 Acquia 提供 jq 以通过命令行处理 JSON 数据,因此选择 JSON 格式。

示例 sites.json

{
  "site1": {
      "uriPattern": "{env}-{site1}.prod.{group}.acquia-sites.com",
      "databases": [
        "site1"
      ]
  },
  "site2": {
    "environmentUri": {
      "dev": "unique-dev.domain.com",
      "test": "staging.domain.com",
      "prod": "www.production.com"
    },
    "databases": [
      "site2",
      "extra_database",
    ]
  }
}

站点 URI 设置

sites.json 应该有一个 uriPatternenvironmentUri 字段,用于定义每个环境的站点 URI。

uriPattern 是一个包含环境("{env}")、站点("{site}")和站点组("group")占位符的单个字符串值,这些占位符将由当前上下文中的相应值替换。这对于大多数环境遵循模式设置的情况非常有用。

environmentUri 是一个对象,键是环境名称,值是用于该环境的 URI。当对于当前环境可用时,显式 URI 优先使用并首先进行检查。这使您能够仅针对生产环境设置唯一的 URL,但允许将此模式应用于所有其他环境。

示例

{
  // This uses "www.production.com" for the production environment for this
  // site, and uses the URI pattern to generate the URIs for all other
  // environments.
  "site1": {
    "uriPattern": "{env}-{site1}.prod.{group}.acquia-sites.com",
    "environmentUri": {
      "prod": "www.production.com"
    }
  }
}

站点数据库

Drupal 站点可以有多个数据库连接,Acquia 部署钩子仅提供数据库名称。提供站点到数据库的映射可以使这些钩子确定正在复制或还原的数据库属于哪些站点。

这仅适用于与站点 ID 不匹配的数据库。与站点 ID 或站点组名称匹配的数据库名称自动假定是具有匹配名称的站点的默认 Drupal 数据库。

示例

{
  "site1": {
    "databases": [
      "additional-db"
    ]
  },
  "site2": {
    "databases": [
      "db1",
      "db2"
    ]
  }
}