宝塔面板API调用,自动化创建网站数据库

宝塔面板提供了一套完整的API接口,允许你通过HTTP请求远程创建网站、数据库、FTP等资源。
对于需要批量部署网站或集成到自有系统的运维人员来说,使用API调用比手动在面板点击效率高得多。
本文面向零基础用户,从获取API密钥开始,逐步演示如何用curl命令自动化创建网站和数据库,并给出常见报错的排查方法。

调用前需要准备什么

开始之前,请确认你具备以下条件:

  • 一台已安装宝塔面板的服务器,面板版本建议为7.x或以上(不同版本API路径可能略有差异,建议以官方文档为准)。
  • 拥有面板的登录地址、用户名和密码。
  • 服务器防火墙已放行面板端口,且允许你当前IP访问。
  • 基本的Linux命令行操作能力,会使用curlwget

关键一步是获取API密钥。 登录宝塔面板后,点击左侧菜单“面板设置”,找到“API接口”选项,开启API并复制接口密钥(token)。
同时,在“IP白名单”中添加你的调用来源IP,否则请求会被拒绝。

构造API请求的基本格式

宝塔面板API的调用地址通常为:

http://面板IP:面板端口/API接口路径?参数1=值1&参数2=值2

所有请求都需要在URL中附带key参数,值为你复制的API密钥。
例如:

http://192.168.1.100:8888/site?action=AddSite&key=你的API密钥

注意: 生产环境建议使用HTTPS,避免密钥在传输中泄露。
如果面板开启了SSL,将http改为https即可。

自动化创建网站的具体步骤

创建网站接口调用

宝塔创建网站的API路径为/site?
action=AddSite
,支持POST或GET请求。
以下是一个完整的curl示例:

curl -X POST "http://192.168.1.100:8888/site?action=AddSite" \
  -d "key=你的API密钥" \
  -d "webname={\"domain\":\"example.com\",\"domainlist\":[\"www.example.com\"],\"count\":0}" \
  -d "type=PHP" \
  -d "version=74" \
  -d "port=80"

参数说明:

  • webname:JSON字符串,包含主域名domain、附加域名列表domainlist
  • type:网站类型,如PHPHTML等。
  • version:PHP版本,如74代表PHP 7.4。
  • port:端口,通常为80。

执行后返回JSON格式的结果,若statustrue,表示网站创建成功,同时会返回网站ID和根目录路径。

创建数据库接口调用

创建数据库的API路径为/database?
action=AddDatabase
,示例命令:

curl -X POST "http://192.168.1.100:8888/database?action=AddDatabase" \
  -d "key=你的API密钥" \
  -d "name=example_db" \
  -d "db_user=example_user" \
  -d "password=你的数据库密码" \
  -d "type=MySQL" \
  -d "version=5.7"

参数说明:

  • name:数据库名。
  • db_user:数据库用户名。
  • password:数据库密码,建议使用强密码。
  • type:数据库类型,如MySQLMongoDB等。
  • version:数据库版本,需与已安装的版本一致。

成功时返回status: true,并提示数据库创建完成。

常见报错与避坑指南

请求被拒绝或返回“权限验证失败”

  • 检查API密钥是否填写正确,注意不要有多余空格。
  • 确认调用IP已加入面板的IP白名单。
  • 如果面板开启了“API接口”但未开启“允许跨域”,部分调用方式可能受限。

创建网站时提示“域名已存在”

说明该域名已在面板中绑定过。
可以先调用/site?
action=DeleteSite
删除旧站点,或更换域名。

数据库创建失败,提示“用户已存在”

数据库用户名在MySQL中必须唯一。
如果之前创建过同名用户,需要先删除或更换用户名。

返回“未安装PHP”或“未安装MySQL”

API不会自动安装软件。
请先在宝塔面板的“软件商店”中安装对应版本的PHP和MySQL,再执行API调用。

如何验证自动化结果

执行完API调用后,可以通过以下方式确认是否成功:

  • 登录宝塔面板,在“网站”列表中查看新站点是否出现。
  • 在“数据库”列表中检查新数据库和用户是否创建。
  • 访问网站域名,若返回默认页或PHP探针,说明网站已正常运行。
  • 使用mysql -u用户名 -p密码 -e "show databases;"命令验证数据库连接。

自动化脚本建议加入错误处理,例如判断返回JSON中的status字段,失败时记录日志并重试。

适合批量操作的脚本思路

如果你需要创建多个网站和数据库,可以将上述curl命令写入Shell脚本,用循环读取域名列表。
例如:

#!/bin/bash
for domain in example1.com example2.com; do
  curl -X POST "http://192.168.1.100:8888/site?action=AddSite" \
    -d "key=你的API密钥" \
    -d "webname={\"domain\":\"$domain\",\"domainlist\":[\"www.$domain\"]}" \
    -d "type=PHP" \
    -d "version=74" \
    -d "port=80"
done

注意: 脚本中不要硬编码API密钥,建议使用环境变量或配置文件读取,避免泄露。

关于安全与版本兼容的提醒

宝塔面板的API接口在不同版本中可能存在参数差异,调用前建议查阅对应版本的官方API文档。
同时,API密钥拥有较高权限,请勿在客户端代码或公开仓库中暴露。
如果不再使用API,及时在面板中关闭接口并删除密钥。

总结: 通过宝塔面板API自动化创建网站和数据库,核心是获取密钥、构造正确参数、处理返回结果。
掌握这些步骤后,你可以将建站流程集成到自有系统中,显著减少重复操作。
遇到报错时,优先检查密钥、IP白名单和软件依赖,多数问题都能快速定位。

分享到:
上一篇
宝塔面板跨服务器同步站点,批量迁移网站
下一篇
宝塔面板监控告警,服务器负载短信通知
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意