簡體   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