【问题标题】:How to reboot a remote dedicated server using php script or php shell client?如何使用 php 脚本或 php shell 客户端重新启动远程专用服务器?
【发布时间】:2012-03-19 16:03:56
【问题描述】:

我正在寻找一种使用 php 重新启动远程专用服务器的方法。在 Google 上进行研究时,我阅读了有关 Python shell 客户端的信息。 php中有没有类似的东西?

我可以使用 php 通过 shell 命令重新启动远程服务器吗?这样做需要什么?

【问题讨论】:

  • 您需要了解如何从 PHP 调用外部 shell 脚本?
  • 是或连接到远程shell服务器并执行重启命令。

标签: php shell shell-exec


【解决方案1】:

我假设你想要一个用 php 实现的基于 web 的 shell。 在这种情况下,您可以查看此http://ajaxshell.sourceforge.net/ 还有这个http://sourceforge.net/projects/ajaxshell/

使用这些脚本,您可以运行任意 shell 命令。 但请记住两件事。 1.密码保护web shell app 2. shell 将以 apache 用户身份运行命令。如果要重新启动服务器,apache 可能需要 root 权限。以 root 身份运行 apache 通常被认为不是一个好习惯。

【讨论】:

    【解决方案2】:

    您可能可以,通过使用 exec()、passthru() 等。这是一个好主意,我不确定:您必须授予重新启动权限(我不确切知道,但它几乎是 root ...) 给您的 php 用户。

    只是为了确定,你想要做的是调用一个网页来重启你的服务器,还是更复杂?

    【讨论】:

      【解决方案3】:

      有一个与 PHP 等效的 shell。我最近发布了一个项目,它允许 PHP 获取一个真实的 Bash shell 并与之交互,你甚至可以轻松地获得一个具有 root 权限的 shell。在这里获取:https://github.com/merlinthemagic/MTS

      下载后您只需使用以下代码:

      //if PHP is running on the server you want to reboot:
      $shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
      
      //if PHP needs to SSH to the server first
      $shell = \MTS\Factories::getDevices()->getRemoteHost('ip_address')->getShellBySsh('username', 'password');
      
      $strCmd = "reboot";
      $return1  = $shell->exeCmd($strCmd);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-20
        • 2018-10-01
        • 2012-12-01
        • 2016-01-06
        • 2012-02-12
        相关资源
        最近更新 更多