【问题标题】:How do I restart IIS (or single site) from a PHP page?如何从 PHP 页面重新启动 IIS(或单个站点)?
【发布时间】:2019-10-20 01:25:12
【问题描述】:

当我查看 Azure 时,有一个选项可以从基于 Web 的控制面板重新启动 IIS:据我的一个朋友说,该界面只是在后端调用 powershell 脚本。我当前的 VPS 提供商提供相同的功能,从网页重新启动 Web 服务器。

我试过了

echo Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -Command "& {iisreset}"');

但得到“拒绝访问”。

我试过了

echo Shell_Exec ('command.exe appcmd stop site "that_website"');

它不会抛出错误,但它也不起作用。

这是目标:偶尔,PHP 会启动(Fast-CGI 进程已停止工作)并且我的电话响了。我想让客户选择按下按钮并重新启动他们的网站。我需要什么权限,和/或什么代码可以做到这一点?

【问题讨论】:

  • 重启 IIS 需要管理员权限,您的 VPS 提供商可能不允许您这样做。
  • 这不是我的问题。无论如何,我对盒子有完全的管理控制权。
  • 您的帐户可能是管理员,但您在 IIS 上的 PHP 代码可能不是。基本事实总是可以忽略,blog.lextudio.com/…

标签: php iis


【解决方案1】:

当我将您的代码修改为时,我可以让 appcmd 工作

echo Shell_Exec ('appcmd.exe stop site "website"');

如果您想在 PHP 中使用 powershell 执行 iireset 之类的操作,只需尝试更改 IIS 管理器->站点节点->基本设置->连接为->特定用户->尝试将其替换为域管理员帐户。

但不建议在 PHP 应用程序中执行此操作。

当您遇到拒绝访问错误时,请尝试使用进程监视器来解决此类问题。

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2016-03-03
    • 2019-01-02
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多