返回博客

使用 DDEV 在本地设置 Drupal 9 多站点:托管在 Acquia 并使用 Acquia Pipelines

2023-03-123 分钟阅读

在我目前的工作中,我领导的团队正在为一家大型私营组织提供三个网站的支持。这三个网站托管在 Acquia 上。这些网站是多站点设置的一部分,源代码使用 Acquia Pipelines 服务进行管理。

简而言之,Acquia Pipelines 是 Acquia 提供的一项持续集成和部署服务,Acquia 是一个为 Drupal 网站提供企业级托管、支持和管理的云平台。

什么是 DDEV?

DDEV 是一个命令行工具,可帮助开发人员快速轻松地设置本地开发环境。它旨在简化设置本地 Web 服务器、管理依赖项和配置开发环境的过程。如果您是第一次尝试使用 DDEV,请务必查看这篇 帖子 以开始使用 DDEV。

什么是 Drupal 多站点?

Drupal 多站点是一项功能,允许使用单个 Drupal 代码库和数据库管理多个网站。在 Drupal 多站点设置中,多个网站共享一个 Drupal 安装,这可以减少维护时间和成本。

在 Drupal 多站点配置中的每个网站都有其自己独特的域名或子域名,并且可以拥有自己的主题、模块、内容和配置。但是,它们共享相同的核心代码库和数据库。

当您需要管理共享相似代码库、主题或功能的多个网站时,Drupal 多站点非常有用,例如相关的网站网络或网站的多个语言版本。它可以简化网站维护,降低成本,并提高网站之间的一致性。

设置本地多站点的步骤

  1. 您需要使用 DDEV 设置项目。请查看这篇 帖子 以开始。
    • 站点提供的 docroot 位置应为 web/docroot。运行命令 ddev config 时会询问有关 docroot 位置的问题
  2. 在 .ddev 文件夹中,创建一个名为 config.multisite.yaml 的文件
  3. config.multisite.yaml 文件应包含以下内容:
additional_hostnames:
  - site1
  - site2
  - site3
  1. 更新 sites.php 文件以添加三个本地域名及其对应的文件夹。

sites.php 文件是一个配置文件,允许您将域名或 URL 映射到特定的 Drupal 站点目录。

$sites['site1.ddev.site'] = 'site1_directory';
$sites['site2.ddev.site'] = 'site2_directory';
$sites['site3.ddev.site'] = 'site3_directory';
  1. 使用 PHPMyAdmin 创建三个数据库。如果 DDEV 项目的名称为 mysite,则可以通过 https://mysite.ddev.site:8037/ 访问 phpmyadmin
  2. 从 Acquia 导出数据库备份,并将其导入到您在第 4 步中创建的相应数据库中。
    • 如果数据库很大,您可以使用 ddev 命令导入它们:ddev import-db --target-db=DATABASE_NAME --src=.tarballs/DB-BACKUP_FILE.sql.gz
  3. 在每个文件的目录中,您需要添加此 ddev 文件
  4. 需要更新每个站点的 settings.php 文件以包含来自此文件的代码。
  5. 运行 ddev ssh,然后运行 composer install
    • ddev ssh 命令允许您访问正在运行的 ddev Web 容器的命令行界面 (CLI),因此您可以在 Web 容器内部运行 composer、drush 和其他命令。

分类: