如何使用php脚本或php shell客户端重启远程专用服务器?

时间:2012-03-19 16:03:56

标签: php shell shell-exec

我正在寻找一种使用php重启远程专用服务器的方法。在Google上做研究时,我读到了关于Python shell客户端的内容。 php中有类似内容吗?

我可以使用php使用shell命令重启远程服务器吗?以及需要做什么?

3 个答案:

答案 0 :(得分:0)

你可能可以,通过使用exec(),passthru()等。这是一个好主意,我不确定:你将不得不提供重启权限(我不确切知道,但它几乎是根...)给你的php用户。

可以肯定的是,你想要做的是调用一个会重启你的服务器的网页,或者它更复杂吗?

答案 1 :(得分:0)

我假设您需要在php中实现基于Web的shell。 在这种情况下,您可以查看此http://ajaxshell.sourceforge.net/ 这个http://sourceforge.net/projects/ajaxshell/

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

答案 2 :(得分:0)

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);