设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 514|回复: 1

[教程] PHP操作IIS [复制链接]

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

帖子
2836
精华
2
声望
12984 点
金币
2999 Mold
被赞许
28 次
注册时间
2006-4-28

Mod中国同盟社至高荣誉

发表于 2011-6-12 09:52:20 |显示全部楼层
文件:iis.class.php
代码:
  1. <?
  2. /**************************************
  3. PHP调用ADSI操作IIS类

  4. **************************************/
  5. class IISObj{

  6. var $_ServiceObj;       //服务对象

  7. var $_ServerAddr;       //服务器地址,
  8. var $_IPAddr;           //新建站点IP地址,
  9. var $_PortNum;          //新建站点端口号,
  10. var $_HostName;         //新建站点主机名,
  11. var $_WebSiteDirectory; //新建站点根目录,
  12. var $_LogDirectory;     //新建站点LOG文件目录,
  13. var $_WebSiteInfo;      //新建站点说明
  14. var $_GuestUserName;    //新建站点访问时所使用的帐号,
  15. var $_GuestUserPass;    //新建站点访问时所用帐号的口令,
  16. var $_StartOrStop;      //是否启动新建站点,
  17. /*
  18.    构造函数
  19. */
  20. function IISObj($ServerAddr){
  21.    $this->_ServerAddr=$ServerAddr;

  22.    $this->_ServiceObj = new COM("IIS://".$this->_ServerAddr."/W3SVC") or die("不能加载W3SVC");

  23. }

  24. /*
  25.    列出所有WEB站点
  26. */
  27. function ShowWebSite(){
  28.    $i=1;
  29.    foreach($this->_ServiceObj as $IISService ){
  30.     if ($IISService->class=='IIsWebServer'){
  31.      echo $i ."、<br>" ;
  32.      $ShowWebSite=$IISService->get("ServerBindings");
  33.      $infoArr=split(':',$ShowWebSite[0]);
  34.      echo "   站点名称:".iconv('GBK','utf-8',$IISService->ServerComment)."<br>";
  35.      echo "   站点编号:".$IISService->name."<br>";
  36.      echo "   站点IP地址:".$infoArr[0]."<br>";
  37.      echo "   站点端口:".$infoArr[1]."<br>";
  38.      echo "   站点主机头:".$infoArr[2]."<br>";
  39.      echo "   <a href='#' onclick='del(".$IISService->name.")'>删除此站点</a><br><br>";
  40.      $i++;
  41.     }
  42.    }

  43. }


  44. /*
  45.    新增WEB站点
  46. */
  47. function AddWebSite(){
  48.    //新建的站点是否相关属性重复
  49.    $BindingString = $this->_IPAddr . ":" . $this->_PortNum . ":" . $this->_HostName;
  50.   foreach($this->_ServiceObj as $WebServer){
  51.    if ($WebServer->class=='IIsWebServer'){
  52.     $Bindings = $WebServer->ServerBindings;

  53.     if (strval($BindingString) == strval($Bindings[0])){
  54.   echo "IP地址、端口、主机头冲突:" . $BindingString . ",请检测!";
  55.   exit;
  56.     }
  57.    }
  58.   }

  59.    //生成新站点
  60.    $NewWebServer =$this->_ServiceObj->Create("IIsWebServer",$this->GetRand());
  61.    if ($NewWebServer)
  62.      echo "站点: ".$SiteNum." 创建成功 ";

  63.    //设置站点相关属性
  64.    $NewBindings = array();
  65.    $NewBindings[] = $BindingString;
  66.    $NewWebServer->ServerBindings=$NewBindings;
  67.    $NewWebServer->ServerComment=iconv('utf-8','GBK',$this->_WebSiteInfo);
  68.    $NewWebServer->AnonymousUserName=$this->_GuestUserName;
  69.    $NewWebServer->AnonymousUserPass=$this->_GuestUserPass;
  70.    $NewWebServer->KeyType="IIsWebServer";
  71.    $NewWebServer->FrontPageWeb=true;
  72.    $NewWebServer->EnableDefaultDoc=true;
  73.    $NewWebServer->EnableDirBrowsing=true;
  74.    $NewWebServer->AccessScript=true;
  75.    $NewWebServer->DefaultDoc= "Default.htm, Default.asp, Index.htm, Index.asp,index.php";
  76.    $NewWebServer->LogFileDirectory=$this->_LogDirectory;
  77.    $NewWebServer->SetInfo();

  78.    //创建物理主目录
  79.    if(!file_exists( $this->_WebSiteDirectory ) )
  80.     if(!mkdir( $this->_WebSiteDirectory, "0777" ))
  81.      echo "创建主目录 [".$this->_WebSiteDirectory."]失败.";

  82.    //创建物理日志目录
  83.    if(!file_exists( $this->_LogDirectory ) )
  84.     if(!mkdir( $this->_LogDirectory, "0777" ))
  85.      echo "创建日志目录 [".$this->_LogDirectory."]失败.";
  86.    //目录属性
  87.    $NewDir = $NewWebServer->Create("IIsWebVirtualDir", "ROOT");
  88.    $NewDir->Path=$this->_WebSiteDirectory;
  89.    $NewDir->AccessRead=True;
  90.    $NewDir->AppFriendlyName= "默认应用程序(" . iconv('utf-8','GBK',$this->_WebSiteInfo) .")";
  91.    $NewDir->AccessScript=True;
  92.    $NewDir->SetInfo();
  93.    if ($this->_StartOrStop == 1){     
  94. if (!$NewWebServer->Start)
  95.      echo "站点启动失败";
  96.    }


  97. }


  98. /*
  99.    删除WEB站点
  100. */
  101. function DelWebSite($SiteNo){
  102.   if($this->ExistsWebSite($SiteNo)){   
  103.     if ($this->_ServiceObj->delete("IIsWebServer",$SiteNo))
  104.       return true;
  105.     else
  106.    return false;     
  107.   }else{     
  108. echo "此站点不存在!";
  109. return false;   
  110.   }

  111. }


  112. /*
  113.    根据编号查找WEB站点是否存在
  114. */
  115. function ExistsWebSite($SiteNo){
  116.    foreach($this->_ServiceObj as $IISService){
  117.     if(($IISService->class=='IIsWebServer') and ($IISService->name==$SiteNo))
  118.    return true;     
  119.    }
  120. }      

  121. /*
  122.    生成随机数
  123. */
  124. function GetRand(){
  125.   $seedarray =microtime();
  126.   $seedstr =split(" ",$seedarray,5);
  127.   $seed =$seedstr[0]*10000;   
  128.   srand($seed);   
  129.   $random =rand(1,100000);
  130.   return $random;
  131. }


  132. }
  133. ?>
复制代码
文件:default.php
代码:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html http://www.w3.org/1999/xhtml" target=_blank>http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>PHP操作IIS程序片断</title>
  6. <link href="../css.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <body>
  9. <script language="javascript">
  10. function del(id){
  11.    if (confirm("确定删除该站点吗?"))
  12.     window.location.href="?action=del&id="+id;
  13. }

  14. </script>

  15. <?
  16. error_reporting(E_ALL ^ E_NOTICE);
  17. include("iis.class.php");

  18. $IISObj= new IISObj('localhost');

  19. ?>

  20. <h1 class="font16px">PHP操作IIS程序片段</h1>



  21. <h1>新建站点:</h1>
  22. <form action="?" method="post" >
  23. <input type="hidden" value="add" name="action" />
  24. <table width="70%" border="0" cellpadding="4" cellspacing="1" class="myBorder">
  25.   <tr>
  26.     <td bgcolor="#F6F6F6"><div align="left">服务器地址</div></td>
  27.     <td bgcolor="#F6F6F6"><div align="left">站点名称</div></td>
  28.     <td bgcolor="#F6F6F6"><div align="left">IP地址</div></td>
  29.     <td bgcolor="#F6F6F6"><div align="left">端口号</div></td>
  30.     <td bgcolor="#F6F6F6"><div align="left">主机头</div></td>
  31.     </tr>
  32.   <tr>
  33.     <td>
  34.       <div align="left">
  35.         <input name="ServerAddr" type="text" id="ServerAddr" value="localhost" size="15" />
  36.         </div></td>
  37.     <td>
  38.       <div align="left">
  39.         <input name="WebSiteInfo" type="text" id="WebSiteInfo" value="新建测试站点" size="15" />
  40.       </div></td>
  41.     <td>
  42.       <div align="left">
  43.         <input name="IPAddr" type="text" id="IPAddr" value="127.0.0.1" size="15" />
  44.         </div></td>
  45.     <td>
  46.       <div align="left">
  47.         <input name="PortNum" type="text" id="PortNum" value="8001" size="5" />
  48.         </div></td>
  49.     <td>
  50.       <div align="left">
  51.         <input name="HostName" type="text" id="HostName" size="15" />
  52.         </div></td>
  53.   </tr>
  54.   <tr>
  55.     <td bgcolor="#F6F6F6"><div align="left">站点根目录</div></td>
  56.     <td bgcolor="#F6F6F6"><div align="left">站点LOG文件目录</div></td>
  57.     <td bgcolor="#F6F6F6"><div align="left">站点访问帐号</div></td>
  58.     <td bgcolor="#F6F6F6"><div align="left">站点访问密码</div></td>
  59.     <td bgcolor="#F6F6F6">
  60.       <div align="left">启动</div></td>
  61.     </tr>
  62.   <tr>
  63.     <td><div align="left">
  64.       <input name="WebSiteDirectory" type="text" id="WebSiteDirectory" value="c:\tmp" size="15" />
  65.     </div></td>
  66.     <td><div align="left">
  67.       <input name="LogDirectory" type="text" id="LogDirectory" value="c:\tmp\log" size="15" />
  68.     </div></td>
  69.     <td><div align="left">
  70.       <input name="GuestUserName" type="text" id="GuestUserName" value="administrator" size="15" />
  71.     </div></td>
  72.     <td><div align="left">
  73.       <input name="GuestUserPass" type="text" id="GuestUserPass" size="15" />
  74.     </div></td>
  75.     <td>

  76.         <div align="left">
  77.           <input name="StartOrStop" type="checkbox" id="StartOrStop" value="1" />
  78.         </div></td>
  79.     </tr>
  80. </table>


  81. <input type="submit" name="Submit" value="保存站点信息" />
  82. </form>



  83. <h1>以下是服务器上的所有站点:</h1>
  84. <?
  85. //   
  86.   //列出站点
  87.   $IISObj->ShowWebSite();

  88.   //新建站点
  89.   if($_POST){
  90.    if ($_POST["action"]=="add"){
  91.      $IISObj->_ServerAddr=$_POST["ServerAddr"];
  92.      $IISObj->_IPAddr=$_POST["IPAddr"];
  93.   $IISObj->_PortNum=$_POST["PortNum"];
  94.   $IISObj->_HostName=$_POST["HostName"];
  95.   $IISObj->_WebSiteDirectory=$_POST["WebSiteDirectory"];
  96.   $IISObj->_LogDirectory=$_POST["LogDirectory"];
  97.   $IISObj->_WebSiteInfo=$_POST["WebSiteInfo"];
  98.   $IISObj->_GuestUserName=$_POST["GuestUserName"];
  99.   $IISObj->_GuestUserPass=$_POST["GuestUserPass"];
  100.   $IISObj->_StartOrStop=$_POST["StartOrStop"];
  101.      $IISObj->AddWebSite();
  102.   echo "<script>window.location.href='default.php';</script>";
  103.    }
  104.   }
  105.   //删除站点
  106.   if($_GET){
  107.    if ($_GET['action']=='del'){
  108.      $IISObj->DelWebSite($_GET['id']);
  109.   echo "<script>window.location.href='default.php';</script>";
  110.    }
  111.   }
  112. ?>

  113. </body>
  114. </html>  
复制代码

使用道具 举报

Rank: 1

帖子
48
精华
0
声望
30 点
金币
-3 Mold
被赞许
0 次
注册时间
2011-6-30
发表于 2011-7-15 10:49:26 |显示全部楼层
16.var $_WebSiteInfo;      //新建站点说明

17.var $_GuestUserName;    //新建站点访问时所使用的帐号,

18.var $_GuestUserPass;    //新建站点访问时所用帐号的口令,

19.var $_StartOrStop;      //是否启动新建站点,
科士威产品怎么样    http://www.tetway.com/?leiyuan

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部