四种方案速览:从简单到复杂,从1个站到1000个站
| 方案 | 难度 | 适合规模 | 费用 | 核心优势 |
|---|---|---|---|---|
| 宝塔面板 bt 命令 + Shell | ⭐⭐ | 5-100个站 | 免费 | 最简单的批量方式,3行命令 |
| WP-CLI + Shell 脚本 | ⭐⭐⭐ | 10-500个站 | 免费 | 全流程自动化,含主题插件配置 |
| Docker Compose 编排 | ⭐⭐⭐⭐ | 任意规模 | 免费 | 环境隔离最好,迁移最方便 |
| Quick Build WP 等全自动工具 | ⭐ | 1-20个站 | 免费开源 | 零命令行,填表单就搞定 |
一、方案一:宝塔面板 bt 命令 + Shell,最简单的批量建站方式
如果你用的是宝塔面板(或aaPanel),这是门槛最低的批量方案。宝塔面板内置了一套 `bt` 命令行工具,可以直接在SSH终端里调用面板的底层功能。三步搞定批量建站
第一步:准备域名列表文件
# 创建 sites.txt,每行一个域名
beijing.mybrand.com
shanghai.mybrand.com
guangzhou.mybrand.com
shenzhen.mybrand.com
第二步:写一个3行Shell脚本
#!/bin/bash
# 读取域名列表,逐个创建站点(PHP 7.4)
while read domain; do
bt add_site $domain 74
done < sites.txt
第三步:执行脚本
chmod +x add-batch.sh && ./add-batch.sh
bt 命令的常用子命令
| 命令 | 功能 |
|---|---|
| bt add_site 域名 PHP版本ID | 创建网站(自动创建数据库和FTP) |
| bt delete_site 域名 | 删除网站 |
| bt 76 | 查看SSL证书列表 |
| bt 77 | 强制续签所有SSL证书 |
| bt restart | 重启面板服务 |
这个方案的局限:bt add_site 只是创建了空站点,不会自动安装WordPress等程序。建完站点之后还需要手动(或另外写脚本)把程序文件传进去、配置数据库。它解决的是"建站"这一步的批量,不是"装程序"这一步的批量。如果你需要全流程自动化,往下看WP-CLI方案。
二、方案二:WP-CLI + Shell,全流程自动化,从建站到装插件一条命令搞定
这是我自己最常用的方案。WP-CLI是WordPress官方出品的命令行管理工具,配合Shell脚本可以实现"创建数据库→下载WordPress→配置→安装→装主题→装插件→改设置"的全自动批量操作。核心脚本:一次性完成所有步骤
# ===== 配置变量 =====
DB_USER="root"
DB_PASS="你的数据库密码"
BASE_DIR="/www/wwwroot"
ADMIN_EMAIL="admin@yoursite.com"
THEME_SLUG="astra" # 要安装的主题
# 域名列表(一行一个域名)
SITES=(
"beijing.mysite.com"
"shanghai.mysite.com"
"guangzhou.mysite.com"
)
# ===== 循环安装 =====
for SITE in "${SITES[@]}"; do
echo "正在安装: $SITE"
# 1. 创建数据库
DB_NAME="${SITE//./_}_db"
mysql -u"$DB_USER" -p"$DB_PASS" -e "CREATE DATABASE IF NOT EXISTS $DB_NAME DEFAULT CHARACTER SET utf8mb4;"
# 2. 下载WordPress
SITE_DIR="$BASE_DIR/$SITE"
mkdir -p "$SITE_DIR"
wp core download --path="$SITE_DIR" --locale=zh_CN --allow-root
# 3. 生成配置文件
ADMIN_PASS=$(openssl rand -base64 12) # 随机密码
wp config create --path="$SITE_DIR" --dbname="$DB_NAME" --dbuser="$DB_USER" --dbpass="$DB_PASS" --allow-root
# 4. 安装WordPress
wp core install --path="$SITE_DIR" --url="https://$SITE" --title="${SITE%%.*}" --admin_user="admin" --admin_password="$ADMIN_PASS" --admin_email="$ADMIN_EMAIL" --allow-root
# 5. 安装主题
wp theme install "$THEME_SLUG" --activate --path="$SITE_DIR" --allow-root
# 6. 安装必备插件
wp plugin install wordpress-seo --activate --path="$SITE_DIR" --allow-root
wp plugin install wp-super-cache --path="$SITE_DIR" --allow-root
# 7. 基本设置
wp option update blogdescription "" --path="$SITE_DIR" --allow-root
wp option update timezone_string "Asia/Shanghai" --path="$SITE_DIR" --allow-root
wp rewrite structure '/%postname%/' --path="$SITE_DIR" --allow-root
echo "✅ $SITE 安装完成 | 密码: $ADMIN_PASS" >> install_log.txt
done
echo "全部完成!密码记录在 install_log.txt"
这个脚本干了什么
- 为每个站点创建独立数据库(utf8mb4编码)
- 自动下载最新版WordPress中文版
- 用 `openssl rand` 为每个站点生成随机强密码(不重复,更安全)
- 安装并激活指定主题(脚本里用的是Astra,你可以换成任何主题)
- 安装必备插件(SEO、缓存等,按需增减)
- 统一配置时区、固定链接等基本设置
- 所有管理员密码自动记录到日志文件
WP-CLI的安装(如果还没装)
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

进阶:多线程并行加速
如果一次要装50个以上的站,串行循环太慢。用 GNU Parallel 实现并行安装:cat sites.txt | parallel -j 5 './install_single.sh {}'
`-j 5` 表示同时跑5个安装进程,50个站从串行的1个多小时缩短到15分钟左右。注意:并行数量不要超过服务器的CPU核心数,否则反而会变慢。三、方案三:Docker Compose 编排,环境隔离最干净的方案
如果你的场景是:不同站点需要不同PHP版本、不同数据库配置、或者需要频繁迁移和复制站点环境,Docker方案是最合适的。docker-compose.yml 模板
services:
# MySQL 数据库
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- ./db_data:/var/lib/mysql
# WordPress 实例
wordpress:
image: wordpress:latest
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: rootpassword
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp_data:/var/www/html
# phpMyAdmin(可选,方便管理数据库)
phpmyadmin:
image: phpmyadmin:latest
restart: always
ports:
- "8081:80"
environment:
PMA_HOST: db
批量启动多个WordPress实例
Docker Compose的优势在于:你可以复制多份 `docker-compose.yml`,改一下端口映射和挂载目录,就能批量启动多个完全隔离的WordPress环境。每个实例有自己独立的数据库容器、独立的文件存储、独立的PHP配置。Docker方案的优势
- 环境完全隔离,互不影响
- 迁移只需复制文件夹和docker-compose.yml
- 不同站点可以用不同PHP/MySQL版本
- 一条 `docker compose up -d` 启动所有服务
- 配合Nginx反向代理统一管理域名
Docker方案的短板
- 学习成本较高,需要理解容器概念
- 资源占用比直接部署大(每个容器有基础开销)
- 宝塔面板用户可能不习惯纯命令行管理
- 多实例时端口管理容易混乱
- 性能调优比裸机部署复杂
四、方案四:全自动工具,零命令行也能批量安装
如果上面三种方案你都觉得"太技术了",还有两个更友好的选择:Quick Build WP
GitHub上的开源项目(Qinver-china/quick-build-wp),提供了一个网页表单界面。你只需要填写:服务器SSH信息 → 选择PHP/MySQL版本 → 填写网站域名和管理员信息 → 点击"开始部署"。它会自动通过SSH连接服务器,依次完成宝塔面板安装、环境搭建、WordPress部署、SSL证书申请。一个站从头到尾约2-3分钟,适合需要快速上线、不想碰命令行的场景。但批量能力较弱,主要是单站自动化而非真批量。365建站器(商业软件)
365建站器是国内比较成熟的批量建站商业软件,自称1分钟能建500个网站。功能覆盖批量建站、AI内容生成、自动采集发布、SEO数据监控等。价格需要咨询官方(有专门的购买页面),适合有预算的站群运营团队。⚠️ 提醒:无论用哪种批量建站方案,如果做的是站群,搜索引擎对高度相似的网站有检测能力。不同站点要用不同的主题模板、不同的内容结构、不同的插件组合,避免被判定为垃圾站群。本文只讨论技术实现,站群策略的合规性请自行评估。

五、四种方案怎么选:看你的规模和技术水平
| 你的情况 | 推荐方案 | 理由 |
|---|---|---|
| 用宝塔面板,只需要快速创建空站点,程序另外传 | bt命令+Shell | 3行命令,学习成本最低,宝塔用户零门槛 |
| 装WordPress,要全流程自动化(数据库+程序+主题+插件+设置) | WP-CLI+Shell | 一个脚本搞定所有步骤,可并行加速 |
| 需要环境隔离,不同站点不同PHP版本,或需要频繁迁移 | Docker Compose | 环境完全隔离,迁移最方便 |
| 不想碰任何命令行,填个表单就能装 | Quick Build WP | 网页表单操作,零命令行 |
| 做站群运营,需要建站+内容+SEO全链路 | 365建站器 或类似商业软件 | 建站只是第一步,后续内容更新和SEO监控更需要自动化 |
六、批量安装后必须检查的四件事
不管你用哪种方案批量安装,装完之后有几件事一定要做:1. 检查Nginx配置
批量建站后执行 `nginx -t`,确认所有站点的server_name没有冲突。域名里含下划线或特殊字符时容易报错。
2. 检查SSL证书
批量创建时自动申请的SSL证书不一定全部成功。宝塔用 `bt 76` 查看证书状态,失败的用 `bt 77` 批量重签。

3. 检查首页是否被覆盖
bt add_site 会写入默认欢迎页覆盖掉网站根目录的index文件。如果你在创建站点前已经放好了程序文件,执行后需要重新覆盖回来。
4. 修改所有默认密码
脚本里如果写了固定密码,装完后务必逐个修改。推荐在脚本中用 `openssl rand -base64 12` 为每个站生成随机密码,并记录到日志。
最后
批量安装网站程序这件事,本质上就是把重复的机械劳动用脚本替代。三种方案分别对应三种不同的技术栈偏好:用宝塔面板的选bt命令方案,用WordPress的选WP-CLI方案,追求环境隔离的选Docker方案。一个附加建议:批量建站之前,先把一个站的完整配置调好——主题怎么设、插件装哪些、固定链接什么格式、时区、描述、隐私设置。然后把这个"标准站"的配置步骤翻译成脚本命令,批量跑的时候每个站都是按照这个标准来的。先做好"模板站",再批量复制,比批量建完再逐个改设置效率高得多。· 宝塔用户批量建站 → bt命令+Shell(免费,3行命令)
· WordPress全流程自动化 → WP-CLI+Shell(免费,一脚本搞定建站+主题+插件+配置)
· 环境隔离/多版本需求 → Docker Compose(免费,环境完全隔离)
· 不想敲命令 → Quick Build WP(免费,网页表单)
· 站群全链路运营 → 365建站器等商业软件(付费)
