批量新建外贸站点宝塔面板自动化脚本
为什么要用自动化脚本批量创建外贸站点
维护多个外贸独立站时,手动在宝塔面板一个个添加站点既耗时又容易出错,尤其在域名、目录、数据库、伪静态等重复配置上。
通过一个简单的Shell脚本调用宝塔API,可以在几分钟内创建几十个站点,让服务器按规则自动配置,你只需准备好域名列表。
动手前的准备工作
确保你已满足以下条件:
- 一台已安装宝塔面板的服务器(建议使用Linux,CentOS 7+/Ubuntu 20.04+)
- 宝塔面板已绑定域名并开启API(路径:宝塔面板 → 面板设置 → API接口,打开开关并记录 API密钥 和 接口地址)
- 域名列表文件:整理好所有要绑定的域名,每行一个,保存为
domains.txt - 站点根目录的父目录(例如
/www/wwwroot),脚本会自动为每个域名创建子目录
如果你没有开启AP I,请先登录宝塔面板 → 面板设置 → API接口,开启后复制key和面板地址。
编写自动化批量创建脚本
创建一个新文件 batch_add_site.sh,写入以下内容(替换 API_URL 和 API_KEY 为你的实际值):
#!/bin/bash
# 宝塔面板批量添加站点脚本
# 配置
API_URL="http://你的面板IP:8888"
API_KEY="你的API密钥"
SITE_DIR="/www/wwwroot" # 站点根父目录,可根据需要修改
DB_USER_PREFIX="db_" # 数据库用户名前缀
# 检查域名列表文件
if [ ! -f domains.txt ]; then
echo "错误:未找到 domains.txt 文件,请在脚本同目录下创建。"
exit 1
fi
# 逐行读取域名
while IFS= read -r domain; do
if [ -z "$domain" ]; then
continue
fi
echo "正在处理:$domain"
# 构造API请求参数(JSON格式)
params=$(cat <
保存后赋予执行权限:chmod +x batch_add_site.sh。
注意:脚本中的version可根据你服务器安装的PHP版本调整(例如 72、74、80)。若不需要创建数据库,可将sql设为 false;如需创建,脚本会自动生成随机密码。
执行脚本并查看结果
- 将准备好的
domains.txt和脚本放在同一目录。 - 执行脚本:
./batch_add_site.sh - 观察输出,每个域名后面会返回API的JSON结果,包含
status字段。若status: true表示添加成功;失败会返回错误信息。 - 打开宝塔面板 → 网站,检查新添加的站点是否出现。
常见坑点与排查方法
- API请求失败:检查面板IP、端口、API密钥是否正确;确保服务器防火墙放行了8888端口(如果使用非标端口需放行对应端口)。
- 域名重复:如果某个域名已存在,API会返回
域名已存在错误,脚本不会覆盖,建议先清理重复项。 - PHP版本不适配:如果站点需要跑特定程序(例如WordPress),建议将
version改为 72 或 74,并在创建后手动修改。 - 数据库名/用户名冲突:脚本以
db_加域名去点方式命名,若长度超过限制或与其他站点重复,会失败。可调整DB_USER_PREFIX。 - 权限问题:确保
/www/wwwroot目录可写,脚本创建子目录时会自动赋予www用户权限。
验证站点是否正常
执行完脚本后,选一个站点验证:
- 在浏览器访问该域名(确保域名已解析到服务器IP)。
- 若显示默认页面或
恭喜,站点创建成功,说明站点正常运行。 - 检查站点目录
/www/wwwroot/$domain是否有对应文件。 - 若遇到502错误,通常是PHP版本不符或未安装对应版本PHP扩展,可在站点设置中切换PHP版本。
通过以上步骤,你可以利用这个自动化脚本快速批量部署外贸站点,将精力集中在内容运营上。
如果遇到其他问题,欢迎在评论区交流。