0

我正在做一个项目,我的前端(用 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>

请帮帮我。提前致谢。

4

1 回答 1

0

最简单的方法是ssh在其“运行远程​​命令”模式下使用。

echo exec('ssh $remotehost /usr/bin/tclsh ./$args', $array);

这假设脚本已经上传到远程主机。如果没有,请首先使用scp(与 相同的程序套件的一部分ssh)。

然后,您需要配置运行该 PHP 脚本的帐户,以便能够在不输入密码的情况下通过 ssh 连接到远程主机。一种相当安全的方法是使用密钥进行设置ssh-agent,但我不知道使这种方法与 PHP 一起工作的细节。(关闭目标机器上的密码也可以,但在安全方面很可怕!)

于 2013-07-14T06:14:53.680 回答