繁体   English   中英

从PHP查询IIS FastCGI设置

[英]Query IIS FastCGI settings from PHP

我试图通过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?

如果您还没有看过它,这里有一个非常好的链接,可以详细介绍您正在尝试的相同内容: http//www.sitepoint.com/php-wmi-掘深Windows的PHP /

我要说的一件事(如果你还没有)是检查并验证php.ini中是否启用了以下内容: extension=php_com_dotnet.dll

您的查询返回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;
  }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM