宝塔面板可通过调用Web API全自动创建网站:先启用API并获取64位密钥,再以X-Sign头发送POST请求至/api/site/create接口,传入域名、路径、运行环境等参数,成功返回code=1及站点ID,支持批量脚本部署。

如果您希望在宝塔面板中绕过手动操作,通过程序化方式创建网站,需调用其内置的Web API接口完成站点配置。以下是实现全自动站点创建的具体步骤:
一、启用并获取API密钥
宝塔面板默认关闭API服务,需先在面板设置中开启并生成有效密钥,该密钥用于后续所有接口请求的身份认证与权限校验。
1、登录宝塔面板后台,点击左侧菜单栏的“面板设置”选项。
2、向下滚动至“API接口”区域,勾选“启用API接口”复选框。
3、点击“保存”后,页面将显示当前API密钥及过期时间;如需更新,可点击“重新生成密钥”按钮。
4、复制生成的64位密钥字符串,该字符串需在后续HTTP请求头中以X-Sign字段提交。
二、构造并发送站点创建请求
使用POST方法向/api/site/create接口提交JSON格式参数,宝塔将依据传入域名、根目录、PHP版本等信息自动执行建站流程,包括目录创建、配置文件生成、服务重载等动作。
1、准备JSON请求体,包含必填字段:webname(主域名)、path(网站根目录绝对路径)、type(运行环境类型,如php)、version(PHP版本号,如74)。
2、设置HTTP请求头:Content-Type为application/json,X-Sign为上一步获取的密钥经SHA256哈希后的小写十六进制字符串。
3、使用curl命令发起请求,示例中假设面板地址为https://192.168.1.100:8888,密钥为abc...xyz:
curl -k -X POST "https://192.168.1.100:8888/api/site/create" -H "Content-Type: application/json" -H "X-Sign: a1b2c3..." -d '{"webname":"example.com","path":"/www/wwwroot/example.com","type":"php","version":"74"}'
三、验证站点创建结果
接口返回JSON响应体,其中code字段为1表示成功,data字段包含新站点的ID、端口、SSL状态等元数据;若code为0,则msg字段说明失败原因,常见错误包括域名已存在、目录不可写、PHP版本未安装等。
1、解析响应JSON中的code字段值,确认是否等于1。
2、若code为1,提取response.data.id作为该站点唯一标识,可用于后续API调用(如绑定SSL、添加子域名)。
3、若code为0,检查response.msg内容,例如“PHP版本74未安装,请先安装对应PHP环境”,则需调用/api/php/get_php_versions接口确认可用版本列表。
四、批量创建多站点的脚本封装
通过Shell或Python脚本循环调用站点创建接口,可实现一次触发多个域名的建站任务,适用于测试环境初始化或SaaS平台租户隔离部署场景。
1、准备CSV文件,每行包含一个域名和对应根目录路径,格式为:example1.com,/www/wwwroot/example1.com;example2.com,/www/wwwroot/example2.com。
2、编写Python脚本,使用requests库逐行读取CSV,对每个域名构造独立JSON请求体,并复用同一X-Sign头。
3、在每次请求后加入1秒延迟,避免因高频请求被面板API限流机制拒绝。
4、将执行结果(成功/失败、站点ID或错误消息)写入日志文件,便于后续审计与排查。










