加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

从PHP查询IIS FastCGI设置

发布时间:2020-12-13 17:30:24 所属栏目:PHP教程 来源:网络整理
导读:我试图通过 PHP的COM API使用WMI以编程方式查询在IIS中配置的FastCGI设置. 使用WMI CIM Studio我可以看到有一个FastCgiSection类,它有一个FastCgi成员数组,其中包含我想要的设置(特别是ActivityTimeout和RequestTimeout):http://msdn.microsoft.com/en-us/l
我试图通过 PHP的COM API使用WMI以编程方式查询在IIS中配置的FastCGI设置.

使用WMI CIM Studio我可以看到有一个FastCgiSection类,它有一个FastCgi成员数组,其中包含我想要的设置(特别是ActivityTimeout和RequestTimeout):http://msdn.microsoft.com/en-us/library/bb422421(v=vs.90).aspx

但是,到目前为止,任何查询的尝试都没有成功.查询Win32_Processor等的例子,你可以找到在线工作正常,但将其转换为FastCgiSection的查询是不成功的.

到目前为止我有这个,它没有输出任何东西:

$wmi = new COM('winmgmts:{impersonationLevel=Impersonate}//./root/WebAdministration');
$arrData = $wmi->ExecQuery("SELECT * FROM FastCgiSection");
foreach ($arrData as $obj) {
   echo "has result";
}

如何通过PHP中的WMI访问此API?

解决方法

您的查询返回 FastCgiSection个对象,而FastCGI应用程序设置存储在 FastCgiApplicationElement类中.

您的代码不访问FastCgi成员,只访问WMI查询返回的对象.你需要在FastCgi属性上的另一个循环,以获得你想要的:

$wmi=new COM('winmgmts:{impersonationLevel=Impersonate}//./root/WebAdministration');
foreach($wmi->ExecQuery('SELECT * FROM FastCgiSection') as $section) {
  foreach($section->FastCgi as $application) {
    echo $application->ActivityTimeout,PHP_EOL;
    echo $application->RequestTimeout,PHP_EOL;
  }
}

请注意,为了使此代码有效,您需要:

>在“php.ini”文件中启用COM/.NET extension(如Jonathon Hibbard所述).
> install IIS 7’s WMI Provider.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读