You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为所有Drupal多站点批量安装并启用同一模块

批量处理Drupal多站点的模块安装与启用

一、Composer 批量安装模块

如果你的多站点共享根目录下的composer.json(即共用核心和依赖库),直接运行一次composer require drupal/module_name即可将模块安装到所有站点共用的modules/contrib目录,无需逐个站点操作。

如果每个站点有独立的composer.json,可以用bash脚本批量执行:

#!/bin/bash
# 替换为你的多站点根目录路径
SITES_DIR="/var/www/html/sites"
MODULE="drupal/module_name"

# 遍历所有站点目录
for site in "$SITES_DIR"/*; do
    if [ -d "$site" ] && [ -f "$site/composer.json" ]; then
        echo "为站点 $(basename "$site") 安装模块..."
        cd "$site" && composer require "$MODULE"
        cd - > /dev/null
    fi
done

二、Drush 批量启用模块

结合DDEV和Drush,用脚本批量给所有站点启用模块:

#!/bin/bash
MODULE="module_name"
# 替换为你的实际站点名称列表
SITES=("site1" "site2" "site3" "site4")

for site in "${SITES[@]}"; do
    echo "为站点 $site 启用模块 $MODULE..."
    ddev drush -l "$site" en "$MODULE" -y
done

如果多站点都在同一个DDEV项目的sites目录下,也可以自动遍历站点文件夹:

#!/bin/bash
MODULE="module_name"
SITES_DIR="./sites"

# 排除默认的all和default目录,仅处理自定义站点
for site_dir in "$SITES_DIR"/*; do
    site=$(basename "$site_dir")
    if [ "$site" != "all" ] && [ "$site" != "default" ] && [ -d "$site_dir" ]; then
        echo "处理站点: $site"
        ddev drush -l "$site" en "$MODULE" -y
    fi
done

三、合并脚本:一次完成安装+启用

把安装和启用步骤整合,一键完成所有操作:

#!/bin/bash
MODULE_NAME="module_name"
COMPOSER_MODULE="drupal/$MODULE_NAME"
SITES_DIR="./sites"

# 第一步:Composer安装模块(共用核心时只需执行一次)
echo "通过Composer安装模块 $COMPOSER_MODULE..."
composer require "$COMPOSER_MODULE"

# 第二步:批量启用模块到所有站点
echo "为所有站点启用模块 $MODULE_NAME..."
for site_dir in "$SITES_DIR"/*; do
    site=$(basename "$site_dir")
    if [ "$site" != "all" ] && [ "$site" != "default" ] && [ -d "$site_dir" ]; then
        echo "处理站点: $site"
        ddev drush -l "$site" en "$MODULE_NAME" -y
    fi
done

echo "所有操作完成。"

注意事项

  • 确保DDEV项目已启动(ddev start),否则Drush命令无法正常执行。
  • 若部分站点已安装目标模块,Drush会自动跳过,不会抛出错误。
  • 脚本中的路径、站点名称需根据你的实际环境调整。

内容的提问来源于stack exchange,提问作者Albert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:54:58