我正在做一个项目,从我的前端(用php编写)需要登录到一个服务器,并执行一个只能在该服务器上运行的tcl脚本。
因此,首先我想生成一个连接,然后在该已建立的连接中执行tcl。
我无法生成到服务器的连接。
我的php脚本是:
<!DOCTYPE html>
<html>
<body>
<?php
function print_procedure ($arg) {
$array = array();
echo exec('/usr/bin/tclsh ./$args',$array);
for($i=0;$i<count($array);$i++)
{
echo "<br>";
print_r($array[$i]);
echo "<br>";
}
$script_name='test.tcl';
}
print_procedure($script_name);
?>
</body>
</html>请帮帮我。提前谢谢。
发布于 2013-07-14 14:14:54
最简单的方法是在“运行远程命令”模式下使用ssh。
echo exec('ssh $remotehost /usr/bin/tclsh ./$args', $array);这假设脚本已经上载到远程主机。如果不是,请首先使用scp (与ssh相同程序套件的一部分)。
然后,您需要配置运行该PHP脚本的帐户,使其能够ssh到远程主机,而无需输入密码。一种相当安全的方法是使用密钥设置ssh-agent,但我不知道如何使该方法与PHP一起作用。(在目标机器上关闭密码也是可行的,但是从安全的角度来看,这是非常可怕的!)
https://stackoverflow.com/questions/17614471
复制相似问题