宝塔面板批量建站需模拟表单提交至/site?action=addsite接口,禁用已受限的add_site api;须携带有效request_token和cookie,domain逗号分隔且主域名置首,site_path以/www/wwwroot/开头并chown -r www:www授权。
宝塔面板里批量添加站点时,add_site API 不可用,得用脚本模拟表单提交
宝塔官方没有开放「批量建站」的 Web UI 入口,后台 API 里的 add_site 接口在较新版本(如 v8.0+)中已被限制或移除权限,直接调用会返回 {"code":401,"msg":"无权限访问"}。真实可行的方式是复用宝塔前端提交逻辑,用 Python 或 Shell 拼装表单数据 POST 到 /site?action=AddSite。
实操建议:
- 先手动建一个测试站点,用浏览器开发者工具抓包,记录
domain、path、php_version、type等字段名和值格式 - 注意
domain是逗号分隔字符串(如"a.com,b.com,www.a.com"),不是数组 - POST 请求必须携带有效的
request_token和cookie,否则 403;token 可从/config/get_request_token获取 - 目录路径必须以
/www/wwwroot/开头,且末尾不带斜杠,例如/www/wwwroot/myapp
用 Shell 脚本循环调用 curl 批量创建站点时,必须控制并发与重试
一次性发 50 个请求大概率触发宝塔的请求频率拦截,表现为返回空响应或 502 Bad Gateway。不能靠单纯加 sleep 1 解决,要结合状态码判断 + 指数退避。
关键点:
立即学习“PHP免费学习笔记(深入)”;