如何在 Windows IIS 8.5 上使用 PHP 获取 CPU 使用率?(2012 R2)


How can I get CPU Usage with PHP on Windows IIS 8.5? (2012 R2)

我正在寻找一种简单的方法来获取运行PHP脚本的系统的个人核心使用率或总CPU使用率。

但是我无法这样做。我已经四处寻找各种解决方案,从使用 perf(带和不带直通)到通过 COM 使用 winmgmts。

问题是,如果您使用Apache,其中一些可以在Windows上运行,但是对于IIS,安全限制阻止PHP能够通过COM使用例如winmgmts,所以我只是返回一个空对象。

我该如何解决这个问题? - 老实说,我已经尝试了我在互联网上可以找到的所有解决方案,虽然有很多关于如何提高权限的信息,但所有指南都指向 IIS 7 或更早版本,并且不再适用于 IIS 8.5,实际上建议的选项更改不存在。

如果有人可以帮助我解决这个问题,我将不胜感激,如果我可以通过 PHP 从文件或网络等查询数据,那么使用可以提供此数据的第三方应用程序等解决方法也是可以接受的,即使是我可以查询的 asp.net 脚本?(我对 asp.net 一无所知,但如果它有效,我可以用它来做这件事?

谢谢。

我设法解决了这个问题,我希望它对其他人有所帮助。

您必须做的是将执行 PHP(或 asp)的文件夹转换为应用程序。所以结构将如下所示:

    Website Name
    -> Application Name

然后,您要选择父文件夹,即"网站名称"文件夹,然后转到最右侧操作窗格中的"基本设置",然后选择"连接为..."并以管理员帐户身份连接。

完成此操作后,应用程序将固有您在父网站文件夹中指定的凭据,您现在可以完全访问 perf、wmi 等。

如果仅将凭据直接提供给应用程序,则它不起作用,并且如果不将执行脚本的文件夹转换为应用程序,则也不会起作用。这是我被绊倒的地方,在线文档非常稀少。

我要感谢phpsysinfo github的好人,他们的IIS文档为我指出了需要将站点转换为应用程序的正确轨道,这是我缺少的难题的一部分。