宝塔面板不支持真正意义上的“一键批量添加网站”,官方无batch_add_site或csv导入功能;所谓“一键批量”实为通过bt命令行工具配合shell脚本调用底层api实现自动化建站,需手动检查nginx配置、ssl证书及index.html文件。

宝塔面板不支持真正意义上的“一键批量添加网站”
宝塔面板官方没有提供类似 batch_add_site 或导入 CSV 批量建站的功能。所谓“一键批量”,实际是绕过 Web 界面,用命令行 + 脚本模拟人工操作流程,本质是自动化调用宝塔的底层 API 和文件操作。直接点开面板点“添加站点”建几十个,不仅慢,还极易因重复配置、端口冲突、域名校验失败而中断。
用 bt 命令行工具 + shell 脚本最可靠
宝塔自带的 bt 命令(位于 /www/server/panel/pyenv/bin/bt 或已加入 PATH)可直接创建站点,无需登录 Web 界面。配合简单 for 循环,5 分钟就能跑完 50 个站点。
实操建议:
- 准备一个纯文本文件
sites.txt,每行一个域名:site1.example.com site2.example.com api.v2.test docs.beta.local
- 执行脚本前先确认:PHP 版本已安装(如
74)、网站根目录父路径存在(如/www/wwwroot/)、所有域名 DNS 已解析或仅用于本地测试 - 运行以下命令(替换
74为你实际的 PHP 版本 ID):while read domain; do bt add_site $domain 74 done
-
bt add_site默认启用 FTP、创建数据库、开启 SSL(若域名可验证),如需禁用某项,得改用更底层的python /www/server/panel/class/web_api.py add_site调用,但没必要——多数场景默认行为已够用
批量添加后必须手动检查的三处
脚本跑完不等于万事大吉。宝塔在高并发创建时会跳过部分校验,容易埋坑:
-
nginx配置是否全部生效?执行nginx -t,若报错常见于重复的server_name或非法字符(如下划线_出现在域名中) - SSL 是否全部成功?
bt 76查看证书列表,失败的会显示 “未获取到证书”,需单独重试bt 77(强制续签) - 每个站点的
index.html是否被覆盖?bt add_site默认会写入欢迎页,如果你已有统一模板,得用rsync或cp批量覆盖/www/wwwroot/<domain>/</domain>目录
别碰“宝塔插件市场”的批量建站工具
第三方插件如“批量建站助手”大多只是封装了上面的 shell 脚本,还额外加了 Web 表单和进度条,看似方便,实则引入新风险:
- 插件权限过高,可能读取你所有站点配置甚至数据库密码
- 更新不及时,遇到新版宝塔(如 v8.0+)API 变动就直接报错
AttributeError: 'NoneType' object has no attribute 'get' - 出错时日志藏在插件私有路径里,排查比原生命令难得多
真正省时间的方式,是把那 10 行 shell 保存成 add-batch.sh,加个 chmod +x,下次直接 ./add-batch.sh —— 复杂点在于域名列表格式和路径权限,而不是工具本身。










