[进阶操作]如何使用PHP对接宝塔面板接口

在本文中,我将使用前几日开发的CDN面板为例,示范如何使用PHP对接宝塔面板,通过“POST”,“GET”方法,实现操作/获取宝塔面板的接口数据,可以使用其来控制面板的设置,例如新建网站、上传文件、创建反向代理等操作。

具体接口数据可以参考来自宝塔论坛@youngxj的抓取,传送门https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=23895

如需实现自己定义的功能,也可以使用浏览器开发人员工具的“Network”标签,来获取宝塔面板在控制对应功能时使用的接口url。

1.创建运行环境

新建一个标准PHP环境的网站,新建一个叫“Core”的文件夹,将我们下载好的“Bt.php”和“bt_config.php”文件上传至“Core”文件夹内。

我们在首页编写一个php文件名字取为”index.php”,接下来,我们可以使用文本编辑器同时编辑这三个php文件。

clip_image002.jpg

可以看到,“Bt.php”中定义了从PHP程序通过post方法传参到宝塔ajax接口的方法函数,我们只需要将该文件底部的

echo json_encode($bt->GetSystemTotal());

删除,并将“http://127.0.0.1:8888”修改为你的面板地址(不需要带入口),后面的“xx...”修改为你面板的API准入密钥。

clip_image004.jpg

并将“加载宝塔数据接口”处的“require_once”引用“config.php”修改为“require”,如下图

clip_image005.png

这样就算接入完成了。

如何获得宝塔面板API密钥?

进入面板,点击“面板设置”,点击“API接口”,启用它,并复制提示框内的API接口密钥,并将当前服务器IP与“127.0.0.1”添加到白名单内。

clip_image007.jpg

clip_image008.png

2.验证是否接入成功

在您新建的“index.php”文件中,输入如下代码:

<?php
require ("./Core/Bt.php");
echo json_encode($bt->GetSystemTotal());

clip_image009.png

随后访问“http://你的网页地址/index.php”,看到输出了系统信息即为接入成功!

clip_image011.jpg

3.开始创作

到这里,您已经成功在php中实现了无用户授权下对宝塔的指定接口进行相关的查询操作,现在,您可以写一套用户鉴权来限制哪些用户可以访问哪些接口,这就是最基础的主机面板了!