做站群、批量建站、多客户托管运维的人迟早会遇到同一个问题:手动装网站太慢了。前年接手了一个活儿,帮一个做本地生活号的客户批量部署50个城市分站,每个站都是WordPress加一套主题、几个固定插件、统一的SEO配置。一开始我老老实实手动装:登录宝塔→创建站点→创建数据库→下载WordPress→配置wp-config→执行安装→装主题插件→改设置。第一个站装了18分钟,第二个站15分钟,第三个站14分钟,熟练之后大概12分钟一个。50个站按这个速度,不吃不喝也得干10个小时。装到第8个站的时候心态崩了,停下来搜批量方案。后来花了半天时间研究,最后用WP-CLI配合Shell脚本,写了一个循环,一行命令下去,剩下的42个站全自动装完了。从"手动12分钟一个站"变成了"1分半一个站",而且是全自动不用盯屏幕。这件事之后我认真研究了几种批量安装网站程序的方案,从最简单的宝塔面板脚本到最灵活的Docker编排,不同场景对应不同的最优解。
四种方案速览:从简单到复杂,从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 add_site` 这一条命令会自动完成以下操作:创建网站目录 → 配置Nginx站点 → 创建FTP账户 → 创建数据库 → 尝试申请SSL证书。对宝塔面板来说,这就是"一键建站"的批量版。
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建站器等商业软件(付费)
