class kangle_init{

/*

* 配置需求:PHP >= 5.2.0

* by: 千里溃

* 参照出处: https://www.kanglesoft.com/thread-44506-1-1.html

* c : (control)表示哪个控制文件(目前有whm,cdn)

* a : (action)表示哪个方法,以下介绍

* r : 随机数

* s : 秘钥,通过md5(a + skey +r)得到,如a=add,skey=test,r=888,则s=md5(addtest888)

* 其中skey是服务器安全码

* 所有返回成功都报[result] => 200

* 不成功报[result] => 500 或者 新建(修改)站点时 product_id 和 product_name 都存在参数时报 [result] => 505

*/

public $protocol ;

public $ip;

public $port;

public $r;

public $skey;

public function __construct($ip = '127.0.0.1',$port = '3312',$skey = 'test',$protocol = 'http')

{

$this->protocol = $protocol; //仅支持http和https

$this->ip = $ip;

$this->port = $port;

$this->r = rand(100000,999999);

$this->skey = $skey;

}

public function __destruct()

{

// TODO: Implement __destruct() method.

}

public function url($info=array()){

$url = '';

foreach ($info as $k=>$v){

$url .= $k.'='.$v.'&';

}

return $this->protocol.'://'.$this->ip.':'.$this->port.'/api/index.php?'.$url.'r='.$this->r.'&s='.md5($info['a'].$this->skey.$this->r).'&json=1';

}

public function open($info=array()){

$url = $this->url($info);

if(function_exists('curl_init')){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if ($this->protocol == 'https' or $this->protocol == 'HTTPS'){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

}

$r = curl_exec($ch);

curl_close($ch);

return json_decode($r,true);

}else{

return json_decode(file_get_contents($url),true);

}

}

//获取easypanel的信息(包括了kangle的信息)

public function info(){

/*

* c : whm

* a : info

* 调用成功后你将得到如下返回数据:

* {"result":200,"server":[{"0":"kangle"}],"version":[{"0":"3.4.8"}],"type":[{"0":"enterprise"}],"os":[{"0":"windows"}],"license_id":[{"0":"73646_1387957818"}],"license_name":[{"0":"dsdds"}],"total_run":[{"0":"611038"}],"connect":[{"0":"4"}],"request":[{"0":"14105"}],"accept":[{"0":"4722"}],"vh":[{"0":"43"}],"kangle_home":[{"0":"D:\\\easypanel\\"}],"update_code":[{"0":"win_x64"}],"easypanel_version":"2.6.17"}

* 其中result=200表示调用成功。

* version是kangle的版本

* type是kangle的商业版还是免费版(enterprise or free)

* total_run 是运行时间

* vh 是虚拟主机数量

* connect是当前有多少请求进来。

*

*/

return $this->open(array('c'=>'whm','a'=>'info'));

}

//获取站点信息

public function getvh($name = null){

/*

* c : whm

* a : getVh

* name : (虚拟主机名称)

*

* 返回的虚拟主机的参数说明

* name : 主机名称

* doc_root:主机的主目录

* uid:系统生成(用户在服务器上的账户ID),权限控制使用。不可更改。

* gid :系统账户组ID

* module:是属于哪个模块,目前有php和iis两个模块。

* templete,subtemplete,已废弃

* create_time :创建时间

* expire_time2 :过期时间

* status:站点状态,0正常,1为关闭。

* subdir_flag 是否允许子域名,1为允许,0为不允许

* subdir 默认子目录名称

* web_quota 空间大小

* db_quota 数据库大小

* domain :允许绑定域名数量 -1为不限

* max_connect 最多连接数

* max_worker 最多工作者

* ftp : 是否开通ftp,1为开通,0为不开通

* db_name 数据库名称(一般和主机名称等同,sql server 特殊)

*/

return $this->open(array('c'=>'whm','a'=>'getVh','name'=>$name));

}

//创建站点

public function add_vh($info = array()){

/*

* 固定值:

* c : whm

* a : add_vh

* r : 随机

* s : 秘钥

* init : 1 //表示创建

* name:网站账号,数据库账号,ftp账号同步

* passwd:网站密码,数据库密码,ftp密码同步(只创建时同步)

* product_id 和 product_name 都存在参数时报 [result] => 505,product_id 和 product_name 只能存在一个或者 一个都不存在,当一个都不存在时 详细配置虚拟主机参数

*/

if(trim(intval($info['product_id'])) != null and trim($info['product_name']) != null){

return array('result'=>'505');

}elseif(trim(intval($info['product_id'])) != null){

return $this->open(array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_id']));

}elseif (trim($info['product_name']) != null){

return $this->open(array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_name']));

}else{

/*

* 详细配置模式下的传入值列表

* cdn:是否为CDN空间,是则发送1

* Templete:语言(html|php|iis)

* Subtemplete:语言引擎,php52|php53|php5217

* web_quota:网页空间大小,数字

* db_quota:数据库大小,数字

* db_type:数据库类型,mysql|sqlsrv

* subdir_flag:是否允许绑定子目录,1为是

* Subdir:默认绑定目录,可为空,例:wwwroot

* max_subdir:最多子目录数

* domain:需要绑定的域名,可空,默认会绑定到subdir指 定的目录下。

* ftp:是否开启ftp,1为是

* ftp_connect:ftp最多连接数

* ftp_usl:ftp上传速度限制,单位kb

* ftp_dsl:ftp下载限制。单位kb

* access:是否启用自定义控制,如果是请输入自定义控制文件名access.xml

* speed_limit:带宽限制,数字型,默认为不限(kb)

* log_handle:是否开启日志析分功能,1为是

* flow_limit:流量限制,数字型,默认不限(kb)

*/

$info=array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd']);

return $this->open($info);

}

}

//修改站点信息

public function edit_vh($info = array()){

/*

* 固定值:

* c : whm

* a : add_vh

* r : 随机

* s : 秘钥

* edit : 1 //表示修改

* name:网站账号,数据库账号,ftp账号同步

* passwd:网站密码,数据库密码,ftp密码同步(只创建时同步)

* product_id 和 product_name 都存在参数时报 [result] => 505,product_id 和 product_name 只能存在一个或者 一个都不存在,当一个都不存在时 详细配置虚拟主机参数

*/

if(trim(intval($info['product_id'])) != null and trim($info['product_name']) != null){

return array('result'=>'505');

}elseif(trim(intval($info['product_id'])) != null){

return $this->open(array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_id']));

}elseif (trim($info['product_name']) != null){

return $this->open(array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_name']));

}else{

/*

* 详细配置模式下的传入值列表

* cdn:是否为CDN空间,是则发送1

* Templete:语言(html|php|iis)

* Subtemplete:语言引擎,php52|php53|php5217

* web_quota:网页空间大小,数字

* db_quota:数据库大小,数字

* db_type:数据库类型,mysql|sqlsrv

* subdir_flag:是否允许绑定子目录,1为是

* Subdir:默认绑定目录,可为空,例:wwwroot

* max_subdir:最多子目录数

* domain:需要绑定的域名,可空,默认会绑定到subdir指 定的目录下。

* ftp:是否开启ftp,1为是

* ftp_connect:ftp最多连接数

* ftp_usl:ftp上传速度限制,单位kb

* ftp_dsl:ftp下载限制。单位kb

* access:是否启用自定义控制,如果是请输入自定义控制文件名access.xml

* speed_limit:带宽限制,数字型,默认为不限(kb)

* log_handle:是否开启日志析分功能,1为是

* flow_limit:流量限制,数字型,默认不限(kb)

*/

$info=array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd']);

return $this->open($info);

}

}

//获取站点列标

public function listvh(){

/*

* a : whm

* c : listVh

*/

return $this->open(array('c'=>'whm','a'=>'listVh'));

}

//修改站点密码

public function change_password($name,$passwd){

/*

* c :whm

* a : change_password

* name :站点名称

* passwd :新的密码

*/

return $this->open(array('c'=>'whm','a'=>'change_password','name'=>$name,'passwd'=>$passwd));

}

//修改站点状态

public function update_vh($name,$status){

/*

* c :whm

* a : update_vh

* name :站点名称

* status : 新状态(0正常,1关闭)

*/

return $this->open(array('c'=>'whm','a'=>'update_vh','name'=>$name,'status'=>$status));

}

//删除站点

public function del_vh($name){

/*

* c :whm

* a : del_vh

* name :站点名称

*/

return $this->open(array('c'=>'whm','a'=>'del_vh','name'=>$name));

}

//获取站点的数据库使用量

public function getDbUsed($name){

/*

* c :whm

* a : getDbUsed

* name :站点名称

*/

return $this->open(array('c'=>'whm','a'=>'getDbUsed','name'=>$name));

}

}

//初始化

//$kangle = new kangle_init('IP或域名(默认127.0.0.1)','端口(默认3312)','秘钥(默认test)','协议(http/https,默认http)');

$kangle = new kangle_init('127.0.0.1','3312','tset','http');

//调用方法示例,具体请参照类文件,有详细的代码注释说明

$kangle->update_vh('test',0)

一键复制

编辑

Web IDE

原始数据

按行查看

历史

kangle+php_kangle_init.php相关推荐

  1. kangle php集成环境包,PHP探针-UPUPW环境集成包KANGLE专用版 | bftxjc.com contacts

    PAGE TITLEPHP探针-UPUPW环境集成包KANGLE专用版 | bftxjc.com contacts DESCRIPTIONUPUPW环境集成包KANGLE专用版PHP探针可检测Zend ...

  2. kangle代理服务器限制客户端使用时间

    由于部分原因,公司要求一部分机器,在上午这段时间是可以上网的,而下午是不能上外网的. 为了达到这个要求,有很多的方法可以实现.因为最近一直在使用kangle的软件,所以就用kangle的软件来实现此功 ...

  3. kangle web server源代码安装简明教程

    kangle web server源代码安装简明教程 - kangle使用交流 - kangle软件 是一款高性能web服务器,反向代理服务器,提供虚拟主机管理系统及代理服务器,web服务器架设 - ...

  4. 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍

    Kangle多节点服务器扩展功能,可用来作"负载均衡". 当前,无论是企业网.还是园区网, 业务量的发展都超出了过去,新的应用层出不穷,即使按照当时最优配置建设的网络,也会很快感到 ...

  5. kangle服务器搭建java_linux下kangle虚拟主机-架设java空间的教程及心得

    1. chmod +x jdk-6u31-linux-i586-rpm.bin 2. ./jdk-6u31-linux-i586-rpm.bin 复制代码 (注:如果下载的版本不同输入实际版本) 2. ...

  6. kangle支不支持PHP_【转载】PHP调用kangle的API

    摘要: 根据管理的API公布写了一个类封装了一个操作集合,这是一个kangleAPI的一个封... 根据管理的API公布写了一个类封装了一个操作集合,这是一个kangleAPI的一个封装吧,是在其他地 ...

  7. 康乐php一键脚本,kangle一键脚本

    脚本简介 1.本脚本是可以一键安装kangle+Easypanel+mysql+商业集合脚本. 2.脚本本身集成:PHP5.3.PHP5.4.PHP5.5.PHP5.6.PHP7.1.PHP7.2.P ...

  8. 康乐主机系统怎么安装php,Kangle EP面板详细安装说明

    摘要: 前言毕竟现在大部分Kangle脚本都有一键傻瓜安装功能,主要很多小白用户都是卡在安装之后需要设置的问题,我们这边就推荐4个脚本.至于怎么连接SSH这篇文章暂时先不说了.脚本推荐咖啡... 前言 ...

  9. easypanel安装php5.4,kangle一键脚本-凌梦云

    脚本简介本脚本是一键安装Kangle+Easypanel+MySQL的集合脚本. 脚本本身集成:PHP5.3.PHP5.4.PHP5.5.PHP5.6.PHP7.1.PHP7.2.PHP7.3.MYS ...

最新文章

  1. 独家 | 初学者的问题:在神经网络中应使用多少隐藏层/神经元?(附实例)
  2. linux内存爆了会怎样,linux系统中内存爆满之后会如何?
  3. Vue.js——60分钟组件快速入门(上篇)
  4. js 将图片置灰_JS 上传一张图片让其部分变灰色
  5. 计算机二级如何接受审阅者修订,操作方法 合并修订文档 步骤1 要求审阅者
  6. P4822 [BJWC2012]冻结
  7. ubuntu16.04开机只显示桌面背景鼠标解决方法
  8. C++实现数组类模板
  9. lzg_ad:原创XPE开发视频教材
  10. Excel文件解密软件
  11. 再探 Compose 版本的玩安卓
  12. c语言 闹铃 程序,C语言程序-闹铃
  13. 初探HazelCast IMDG内存数据网格-简介
  14. 将Planet卫星影像数据添加到QGIS, ArcGIS Pro 或 ArcGIS 10.X方法,以ArcGIS Pro为例。
  15. SEM营销推广策略和优化,做好其实并不难!
  16. 做不好资产清点的网络安全防护都是耍流氓
  17. js Date中的T和Z (实用,赞)
  18. hue介绍系列02_李孟_新浪博客
  19. BlueZ双模蓝牙音频卡顿问题优化
  20. Python学习-- 魔法⽅法

热门文章

  1. SSN 社会安全号码
  2. 大数据系列教程003-hadoop伪分布式环境搭建步骤02-设置vmware虚拟网络编辑器
  3. 网吧cf正在连接服务器,windows10系统下运行cf游戏提示连接服务器失败怎么解决...
  4. 人民日报海外网专访来也科技CEO汪冠春
  5. 汇付天下支付接口商户分类分析
  6. 磁盘加锁专家使用教程
  7. 一个人竟然撸了一个微博 App
  8. 中国移动创马通信能力开放专题赛完美落幕,菊风VoLTE视频客服项目荣获二等奖
  9. RPA之家手把手带你入门Blue Prism教程系列2_如何安装并且配置Blue Prism免费试用版
  10. [RK3288][Android6.0] 调试笔记 --- RT5640录音时的Codec寄存器列表