我正在开发一个项目,从我的前端(用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>
请帮帮我。提前谢谢。
答案 0 :(得分:0)
最简单的方法是在“运行远程命令”模式下使用ssh
。
echo exec('ssh $remotehost /usr/bin/tclsh ./$args', $array);
这假定脚本已经上传到远程主机。如果没有,请先使用scp
(与ssh
相同的程序套件的一部分)执行此操作。
然后需要将运行该PHP脚本的帐户配置为能够在不输入密码的情况下ssh到远程主机。一个相当安全的方法是使用密钥设置ssh-agent
,但我不知道使这个方法适用于PHP的细节。 (关闭目标计算机上的密码也可以,但在安全方面可怕!)