网站建设资讯

NEWS

网站建设资讯

php管理虚拟机,通过代理连接

1、        进入安装目录

成都创新互联主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务阳曲,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

Cd C:\Program Files\Oracle\VirtualBox

设置web认证库为null:

VboxManagesetproperty websrvauthlibrary null

然后开启服务

 vboxwebsrv --host 0.0.0.0

2、在浏览器输入http://127.0.0.1:18083

在博客下方附件,提供vbox接口文件

写代码实现时,vbox_oper操作帮助类

include_once('vboxServiceWrappers.php');
classVbox_oper
{
   protected$serverIp;
   protected$serverPort="18083";
   protected$proxy_uname;
   protected$proxy_password;
   protected$proxy_host;
   protected$proxy_port;
   protected$item;
   protected$connection;
   /*
    * 模块名称:得到连接
    * 参数说明:
    * 作者:csl
   */
   public functiongetConn()
   {
       $url="http://".$this->serverIp.":".$this->serverPort."/";
       //$this->connection = new SoapClient("vboxwebService.wsdl", array('location' => $url, 'connection_timeout' => 5,));
       $this->connection=newSoapClient("vboxwebService.wsdl",array('location'=>$url,'connection_timeout'=>5,
           'proxy_host'=>$this->proxy_host,'proxy_port'=>$this->proxy_port,
           'proxy_login'=>$this->proxy_uname,'proxy_password'=>$this->proxy_password));
       return$this->connection;
   }
   /*
    * 模块名称:初始化代理信息
    * 参数说明:
    * init_proxy 包含:ip,port,username,password
    * 作者:csl
    */
   public functioninit_proxy($proxy){
       if(!empty($proxy['ip']))
           $this->proxy_host=$proxy['ip'];
       if(!empty($proxy['port']))
           $this->proxy_port= (int)$proxy['port'];
       if(!empty($proxy['username']))
           $this->proxy_uname=$proxy['username'];
       if(!empty($proxy['password']))
           $this->proxy_password=$proxy['password'];
   }
   /*
    * 模块名称:初始化服务器信息
    * 参数说明:
    * init_proxy 包含:server_ip,sbmc
    * 作者:csl
    */
   public functioninit_data($item,$proxy=array())
   {
       $this->serverPort="18083";
       if(!empty($item['server_ip']))
           $this->serverIp=$item['server_ip'];
       if(!empty($item['sbmc']))
           $this->name=$item['sbmc'];
       if(!empty($proxy)) {
           $this->init_proxy($proxy);
       }
   }
   /*
    * 模块名称:启动虚拟机
    * 参数说明:
    * 作者:csl
    */
   public functionstart()
   {
       $this->getConn();
       $websessionManager=newIWebsessionManager($this->connection);
       $virtualbox=$websessionManager->logon("","");
       $machine=$virtualbox->findMachine($this->name);
       $session=$websessionManager->getSessionObject($virtualbox->handle);
       $state= (string)$machine->state;
       if($state!='Running'&&$state!='Paused') {
           $progress=$machine->launchVMProcess($session->handle,"headless","");
       }
   }
   /*
       * 模块名称:关闭虚拟机
       * 参数说明:
       * 作者:csl
       */
   public functionstop()
   {
       $this->getConn();
       $websessionManager=newIWebsessionManager($this->connection);
       $virtualbox=$websessionManager->logon("","");
       $machine=$virtualbox->findMachine($this->name);
       $session=$websessionManager->getSessionObject($virtualbox->handle);
       $state= (string)$machine->state;
       if($state=='Running'||$state=='Paused') {
           $lockType=newLockType($session,'Shared');
           $machine->lockMachine($session,$lockType->NameMap[1]);
           $iconsole=$session->getConsole();
           $progress=$iconsole->powerDown();
       }
   }
   /*
       * 模块名称:重启虚拟机
       * 参数说明:
       * 作者:csl
       */
   public functionrestart()
   {
       $this->getConn();
       $websessionManager=newIWebsessionManager($this->connection);
       $virtualbox=$websessionManager->logon("","");
       $machine=$virtualbox->findMachine($this->name);
       $session=$websessionManager->getSessionObject($virtualbox->handle);
       $state= (string)$machine->state;
       if($state=='Running'||$state=='Paused') {
           $lockType=newLockType($session,'Shared');
           $machine->lockMachine($session,$lockType->NameMap[1]);
           $iconsole=$session->getConsole();
           $progress=$iconsole->reset();
       }else if($state=='PoweredOff') {
           $progress=$machine->launchVMProcess($session->handle,"headless","");
       }
   }
   /*
   * 模块名称:获取vbox里面所有虚拟机
   * 参数说明:
   * 作者:csl
   */
   public functionget_machines(){
       $this->getConn();
       $websessionManager=newIWebsessionManager($this->connection);
       $virtualbox=$websessionManager->logon("","");
       $machines=$virtualbox->machines;
       return$machines;
   }
}


附件:http://down.51cto.com/data/2366921

文章名称:php管理虚拟机,通过代理连接
本文来源:http://cdweb.net/article/pjpchc.html