是否可以在远程计算机(而不是localhost)上执行shell命令?例如
之类的东西$output = shell_exec("unzip filename.zip");
您可以假设您拥有远程计算机上用户帐户的登录凭据,以及远程root用户名,密码和cpanel远程访问密钥。
答案 0 :(得分:1)
如果您的意思是“远程计算机”,而不是“非客户端计算机”,答案是不合格的是;通过PHP exec
函数运行的命令将在Web服务器上执行。
如果你的意思是“不是网络服务器”,答案是微不足道的。您只能直接在运行PHP的服务器上执行命令。但是,这些命令可以通过SSH等机制在远程计算机上运行其他命令。因此,例如,如果您的Web服务器具有对远程计算机的无密码ssh访问(这是一个非常糟糕的主意),这将起作用:exec('ssh otherhost someremotecommand');
。适合您的解决方案取决于您的用途。
答案 1 :(得分:1)
我知道这个问题很古老,但对于这个问题的观众来说。
您也可以使用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");
?>
答案 2 :(得分:0)
是的,并且无需更改任何代码即可。但是,如果您的服务器将PHP置于安全模式(较小的共享主机方案通常会这样做),您可能无法执行此操作。
提示:您可以使用此简写来获取命令的输出:
$output = `command here`