在远程主机上使用php,例如shell_exec()等执行shell命令?
-
04-10-2019 - |
题
是否可以在远程计算机(不是localhost)上执行Shell命令?例如
$output = shell_exec("unzip filename.zip");
您可以假设您在远程计算机上具有用户帐户的登录凭据,以及远程root用户名,密码和CPANEL远程访问键。
解决方案
如果您的意思是“远程计算机”,如“不是客户端计算机”,则答案是不合格的。通过PHP运行的命令 exec
功能将在Web服务器上执行。
如果您的意思是“不是Web服务器”,那么答案是一个稍微削弱的是。你只能 直接地 在运行PHP的服务器上执行命令。但是,这些命令然后可以通过SSH等机制在远程计算机上运行其他命令。因此,例如,如果您的Web服务器对远程计算机具有无密码的SSH访问(一个非常糟糕的主意),则可以使用: exec('ssh otherhost someremotecommand');
. 。哪种解决方案适合您,取决于您所需的用法。
其他提示
我知道这个问题很古老,但对于这个问题的观众来说。
您也可以使用SSH2_EXEC。 http://php.net/manual/en/function.ssh2-exec.php
<?php
$ip = 'ip_address';
$user = 'username';
$pass = 'password';
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"bash");
?>
是的,并且无需更改任何代码即可。但是,如果您的服务器将PHP置于安全模式(经常共享托管计划),则可能无法执行此操作。
提示:您可以使用此速记来获取命令的输出:
$output = `command here`
不隶属于 StackOverflow