用户登录
个人主页 用户中心 我的订单 添加授权 管理授权
退出登录
用户登录 用户注册
欢迎来到 UC建站系统

宝塔面板到底有没有批量建站的功能?官方确实没有一键导入,但bt命令行加上10行Shell脚本,5分钟建50个网站比手动点半天快得多

如果你是做站群的、做SEO的、或者帮客户代搭建网站的,一定经历过这个场景:打开宝塔面板,添加站点→填域名→选PHP版本→创建数据库→设置FTP→部署SSL→配置伪静态→上传文件——重复50遍。一个下午就过去了,而且中间不能走神,一走神就忘了第37个站用的是PHP 7.4还是8.0。然后你自然就会想:宝塔能不能批量建站?有没有导入域名列表一键创建的功能?

先说结论:官方没有,但三种方法能做到

宝塔面板目前没有任何官方的"批量建站"按钮。 你在面板界面上能找到的批量操作,仅限于批量停止/启动/删除已有的网站,不能批量创建新站点。

但有三条路可以绕过这个限制:
· 方案一:bt命令行——最直接,不需要额外配置,适合临时批量操作
· 方案二:宝塔API——最灵活,可以跨服务器操作,适合自动化运维
· 方案三:第三方工具/脚本——开箱即用,适合不想自己写代码的人
先看一张对比图,帮你快速判断该选哪条路:
对比维度bt命令行宝塔API第三方工具
上手难度★☆☆ 登录SSH直接敲命令★★☆ 需要开启API+获取密钥★★☆ 需要下载配置,但基本开箱即用
跨服务器❌ 只能操作当前服务器✅ 可以远程管理多台服务器部分支持
批量建站✅ 写循环脚本即可✅ 调用API循环创建✅ 核心卖点
SSL批量部署需要额外写脚本需要额外写脚本✅ 部分工具内置此功能
风险低,标准Linux命令中,密钥泄露风险中,第三方代码需审计
适合人群会用SSH的站长需要自动化运维的团队不想写代码的站长

方案一:bt命令行,10行脚本批量建站

宝塔面板自带一个 `bt` 命令,登录SSH后可以直接操作面板的很多功能。这个方案不依赖任何外部工具,也不用开API权限。

先看看bt命令能干什么

SSH登录服务器后,输入 `bt` 回车,会看到宝塔的命令菜单。和建站相关的核心命令是:
# 列出所有已创建的网站
bt site_list

# 添加一个PHP网站(核心命令)
bt add_site 域名 网站根目录 PHP版本

# 删除一个网站
bt del_site 域名

# 创建数据库
bt add_db 数据库名 用户名 密码

# 删除数据库
bt del_db 数据库名
其中 `bt add_site` 是批量建站的核心。一个最简命令:
bt add_site mydomain.com /www/wwwroot/mydomain 74
这条命令做的事:创建一个域名为 `mydomain.com` 的网站,根目录为 `/www/wwwroot/mydomain`,PHP版本为7.4。一行命令等于你在面板上点了七八下鼠标。

重点:批量建站的Shell脚本

假设你有一个域名列表文件 `domains.txt`,每行一个域名:
# domains.txt 内容示例
site1.com
site2.com
site3.com
...
site50.com
然后执行这个脚本:
#!/bin/bash
# 宝塔批量建站脚本
PHP_VER=74
WEB_ROOT=/www/wwwroot

while read domain; do
# 跳过空行和注释
[[ -z "$domain" || "$domain" == \#* ]] && continue

# 提取域名主体部分(去掉后缀)做目录名
dir_name=$(echo "$domain" | sed 's/\..*//')

# 创建网站
echo "正在创建: $domain"
bt add_site "$domain" "$WEB_ROOT/$dir_name" $PHP_VER

# 创建同名数据库(数据库名和用户名用下划线替换域名中的点)
db_name=$(echo "$domain" | sed 's/\./_/g')
db_pass=$(openssl rand -base64 12)
bt add_db "$db_name" "$db_name" "$db_pass"

# 记录数据库密码
echo "$domain | 数据库: $db_name | 密码: $db_pass" >> /root/db_passwords.txt

echo "$domain 创建完成"
done < /root/domains.txt

echo "全部建站完成,数据库密码已保存到 /root/db_passwords.txt"

注意:不同版本的宝塔面板,`add_site` 和 `add_db` 命令的参数格式可能有细微差异。建议先在SSH里手动执行一次 `bt add_site test.com /www/wwwroot/test 74` 确认能跑通,再上批量脚本。如果提示命令不存在,可能是面板版本较旧,需要用方案二的API方式。

50个域名,手动在面板上一个一个创建,就算手速飞快也要40分钟以上。用这个脚本,不到5分钟全部搞定,中间还能去接杯水。更重要的是——不会漏、不会错,每个站的数据库密码都自动记录下来了。

方案二:宝塔API,跨服务器远程批量管理

如果你有多台服务器,或者想把这个流程做成自动化,宝塔API是更合适的选择。

第一步:开启API并获取密钥

登录宝塔面板 → 面板设置 → API接口 → 开启API → 复制接口密钥(一串长字符串)。同时记下你的面板地址,比如 `http://你的服务器IP:8888`。
安全提醒:API密钥等同于面板密码,拿到密钥就能操作你服务器上所有网站和数据库。务必只允许指定IP访问API接口,用完及时关闭,不要把密钥写到公开的代码仓库里。

第二步:理解API调用方式

宝塔API的调用规则是:POST请求 + 签名验证。每次请求需要带上 `request_token`(用密钥+当前时间戳通过md5生成)和 `request_time`。核心建站接口的请求体大致长这样:
POST /site?action=AddSite

参数说明:
webname = {"domain":"mydomain.com","domainlist":[],"count":0}
path = /www/wwwroot/mydomain
type_id = PHP
type = PHP
version = 74
port = 80
ps = 站点备注
ftp = false
sql = false
codeing = utf8
set_ssl = false
force_ssl = false

第三步:Python批量建站脚本

把上面这些参数写进一个Python脚本,循环调用即可:
import hashlib
import time
import requests
import json

# 配置区域——改成你自己的
PANEL_URL = "http://你的服务器IP:8888"
API_KEY = "你的API密钥"
PHP_VER = 74

# 域名列表
domains = ["site1.com", "site2.com", "site3.com"]

def create_site(domain):
"""调用宝塔API创建单个网站"""
now = int(time.time())
token = hashlib.md5((API_KEY + str(now)).encode()).hexdigest()

payload = {
"webname": json.dumps({"domain": domain, "domainlist": [], "count": 0}),
"path": f"/www/wwwroot/{domain.split('.')[0]}",
"type_id": "PHP",
"type": "PHP",
"version": PHP_VER,
"port": 80,
"ps": "",
"ftp": False,
"sql": False,
"codeing": "utf8",
}

url = f"{PANEL_URL}/site?action=AddSite"
data = payload | {"request_token": token, "request_time": now}

resp = requests.post(url, data=data, timeout=30)
return resp.json()

for domain in domains:
result = create_site(domain)
print(f"{domain}{result}")
time.sleep(1) # 间隔1秒,避免请求太密集

API方案的核心优势不是"比命令行快",而是可以远程操作——你人在家里,可以用脚本给机房的服务器批量建站。如果你还管着多台服务器,只需要改一下 `PANEL_URL` 和 `API_KEY` 就能切换。

方案三:现成的第三方工具,不想写代码就用这个

如果上面两套方案让你觉得"太程序员了",那第三方工具就是为你准备的。

baota_BT_SSL(GitHub开源项目)

核心功能:批量建站 + 批量申请SSL证书 + 一键部署HTTPS + 批量续签证书 + 文件批处理。这个工具解决的是"建完站还要一个个申请SSL"的痛点,把建站和SSL打包在一起了。

适用场景:需要给大量域名部署HTTPS的站群站长。开源的,代码透明,可以自己审计。

缺点:需要有一定动手能力,不是图形界面;依赖宝塔API,同样有密钥安全风险。

宝塔API批量建站工具(CSDN上有人分享的客户端)

核心功能:对接宝塔API实现批量创建网站、管理多台服务器、SSL证书批量配置、源站复制等功能。有图形界面,不需要写代码。

适用场景:完全不想碰命令行的站长,需要管理多台服务器的代维人员。

缺点:需要输入宝塔API密钥,安全风险需要自己评估;不是持续维护的活跃项目,版本兼容性需要自己测试。

宝塔面板自带:批量操作已有网站

核心功能:宝塔面板网站列表页,勾选多个网站后,可以批量停止、启动、重启、删除。

适用场景:日常运维——比如升级PHP版本后需要批量重启所有网站。

注意:这个只能管理已有网站,不能批量创建。很多人看到"批量操作"按钮就以为能批量建站,其实不行。

建完站之后,还有四件事必须做

批量建站只是第一步。如果建完就不管了,50个站可能会有各种小问题。按这个顺序过一遍:
1

检查网站是否都能正常访问

1 - 宝塔面板到底有没有批量建站的功能?官方确实没有一键导入,但bt命令行加上10行Shell脚本,5分钟建50个网站比手动点半天快得多 - UC建站系统

批量建站后,至少抽检20%的域名。在浏览器里打开看看,能不能正常显示"站点创建成功"的默认页面。如果打不开,大概率是DNS还没解析过来——建站和域名解析是两回事,建站只管服务器端。

2

批量部署SSL证书

50个HTTP网站和50个HTTPS网站,在百度和用户眼里信任度完全不一样。宝塔面板支持Let's Encrypt免费证书,但需要逐个申请。如果数量多,用前面提到的baota_BT_SSL工具可以批量完成。

3

设置伪静态规则

2 - 宝塔面板到底有没有批量建站的功能?官方确实没有一键导入,但bt命令行加上10行Shell脚本,5分钟建50个网站比手动点半天快得多 - UC建站系统

如果你用的是WordPress、ThinkPHP这类程序,需要设置对应的伪静态规则。宝塔面板里有预设模板,但需要逐个网站去选。目前没有太好的批量设置方法,建议建站时统一用不需要伪静态的程序,或者在脚本里提前写好nginx配置。

4

配置自动备份

网站多了,手动备份不现实。宝塔面板的计划任务里设置定期备份网站文件和数据库,备份到七牛云/阿里云OSS等远程存储。这个一次性配好,后面就不用操心了。

一台服务器最多能建多少个网站?

这是个绕不开的问题。批量建站之前,得先搞清楚你的服务器能不能扛住。
服务器配置建议站点数适用场景注意事项
1核1G5-10个个人博客、小型企业站(纯静态或低流量)别装MySQL,用SQLite或远程数据库
2核4G20-50个站群、中型企业官网、多站点代维开启Redis缓存,静态化处理
4核8G50-150个大型站群、多客户网站托管注意MySQL连接数限制,必要时分库
8核16G+200个以上大型代维公司、站群平台考虑多台服务器分摊,单机风险太大

实际情况是:Nginx/Apache对站点数量本身没有硬性上限,瓶颈在于内存和MySQL。每个PHP-FPM进程大约占30-50MB内存,如果50个站同时有访问,PHP进程数会暴增。所以上面给的是"安全建议数",不是"硬上限"。纯静态HTML网站,一台2核4G放200个都没问题;WordPress网站,30个就开始卡了。

3 - 宝塔面板到底有没有批量建站的功能?官方确实没有一键导入,但bt命令行加上10行Shell脚本,5分钟建50个网站比手动点半天快得多 - UC建站系统

哪些情况下别用批量建站

批量建站是省时间,但不是所有场景都适合。以下三种情况,老老实实手动建:

1. 每个站的配置都不一样。 有的要PHP 7.4,有的要PHP 8.1;有的用ThinkPHP伪静态,有的用WordPress伪静态;有的要开FTP,有的不要。这种情况批量建站反而更麻烦——建完还得逐个去改配置,不如一开始就手动建,每个站一次性配好。

2. 对服务器不熟。 如果你连SSH是什么都不太清楚,就别碰脚本了。批量操作的容错率很低——一行命令写错,50个站全建在错误目录下,清理起来比手动建还花时间。先用面板手动建20个站,等流程完全熟练了,再考虑自动化。

3. 需要同时部署网站程序。 批量建站只创建了空网站框架,WordPress源码、数据库导入、主题配置这些还得一个一个来。如果每个站都要装不同的CMS、不同的主题,那批量建站节省的时间很有限——建站本身可能只占整个部署流程的10%。


说到底,批量建站只是把重复性操作从手工变成了脚本,省的是点击鼠标的时间,不是思考的时间。建站之前,先想清楚:这些站用同一个PHP版本够吗?数据库放在本地还是远程?SSL证书用免费Let's Encrypt还是统一买通配符?备份策略怎么定?这些问题想清楚了,批量脚本才有意义。没想清楚就批量上,省出来的时间全得用来擦屁股。

最后留个实用信息:如果你用方案一的bt命令行,建议先在测试服务器上把脚本跑三遍。第一遍看能不能正常建站,第二遍看建出来的站能不能正常访问,第三遍试着批量删除再重建。三遍都过了,再上正式环境。

相关推荐
在线客服
👇找客服拿折扣
QQ咨询&售后
在线时间
11:00 ~ 5:30
QQ:3155555535
👇联系QQ
👇联系WX
首页 程序 帮助 登录