跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

宝塔面板如何利用API接口批量修改上百个网站的PHP版本?

宝塔面板支持通过API批量更新上百个网站的PHP版本:先启用API并获取密钥,再获取站点列表及当前PHP版本ID,接着查询目标PHP的version_id,然后调用/set_php_version接口逐个修改,最后验证结果并处理异常。

如果您需要在宝塔面板中批量将上百个网站的PHP版本统一更新,手动逐个操作效率极低,而宝塔官方提供了开放的API接口,支持通过HTTP请求实现自动化配置变更。以下是利用API接口完成该任务的具体步骤:

一、启用并获取API密钥

宝塔面板默认关闭API服务,需先在面板后台开启并生成有效密钥,确保后续请求具备合法身份与操作权限。

1、登录宝塔面板,在左侧菜单栏点击

“设置” → “面板设置”

。

2、向下滚动至“API接口”区域,勾选

“启用API接口”

并点击“保存”

。

立即学习“PHP免费学习笔记(深入)

”;

3、点击

“创建API密钥”

按钮,填写描述(如“批量改PHP”),点击确认后复制生成的key值与URL地址(形如https://127.0.0.1:8888/api?secret_key=xxx)。

二、获取目标网站列表及当前PHP版本信息

需先调用站点查询接口,获取所有网站域名及其绑定的PHP版本ID,为后续批量修改提供数据基础与校验依据。

1、构造GET请求:

/site/get_sites,附加API密钥参数(如?secret_key=xxx)。

2、发送请求后解析返回的JSON数据,提取每个站点的

id、name(域名)、php_version字段。

3、筛选出需修改的站点ID列表,并记录其当前PHP版本(如“74”、“80”、“82”),用于对比变更结果。

三、查询目标PHP版本ID

宝塔API不直接接受PHP版本号字符串(如“8.2”)作为参数,而是使用内部整型ID(如82对应PHP 8.2),需预先查表或调用接口获取准确映射关系。

1、调用接口:

/php/get_php_versions,获取面板已安装的所有PHP版本详情。

PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。

下载2、遍历返回结果,定位目标版本(如PHP 8.2)对应的version_id字段值(通常为82、83等整数)。

3、确认该version_id存在于面板中且状态为

“已安装”

,否则后续修改将失败。

四、批量调用站点PHP切换接口

使用/site/set_php_version接口对每个目标站点发起独立POST请求,传入站点ID与目标PHP version_id,实现版本强制覆盖。

1、准备请求体(JSON格式),包含字段:

"id": 站点ID, "version": 目标version_id, "type": "0"(type=0表示网站主程序,非子目录)。

2、对每个站点ID循环发送POST请求至

/site/set_php_version,URL携带secret_key参数。

3、检查每次响应中的

"status": true字段,确认修改成功;若返回false,记录该站点ID与error_msg供排查。

五、验证修改结果并处理异常

接口调用完成后,必须回查各站点实际生效版本,避免因网络中断、权限不足或ID错误导致部分站点未更新。

1、再次调用

/site/get_sites,获取最新站点列表。

2、比对每个目标站点的php_version字段是否已更新为预期值(如由“74”变为“82”)。

3、对未变更成功的站点,检查其

运行状态是否为“正在运行”

,若为停止状态需先启动再重试修改。

相关文章