如何从 PHP 调用 Tcl 脚本

如何从 PHP 调用 Tcl 脚本

目前,我想调用位于服务器 A 的工具命令语言脚本。

当用户浏览托管在服务器 B 上的网站时。例如,当用户单击按钮时,我希望 php 文件执行位于服务器 B 上的 Tcl 脚本。

我怎么做?

先感谢您。

答案1

用一个PHP 执行运算符(请注意,你应该极其小心 - 如果可能的话,限制使用有效脚本,而不是让用户在 GET 或 POST 变量中指定任意命令)。

例子:

http://myserver.com/php_scriptname.php?tcl_call=asdf.tcl

<?php

if ( !file_exists("/path/to/tclsh") ) {
  die('unable to access TCL interpreter - check user permissions for UID ' . getmyuid() );
}

switch ( $_GET['tcl_call'] ) {

  case 'asdf.tcl':
    `/path/to/tclsh /path/to/asdf.tcl`
  break;

  default:
    die('invalid script called');
  break;

}

?>

编辑:

您的问题是:

当用户浏览托管在服务器 B 上的网站时。例如,当用户单击按钮时,我希望 php 文件执行位于服务器 B 上的 Tcl 脚本。

...但如果你想调用服务器“A”上的脚本,你可以设置 SSH 密钥然后从服务器“B”上的脚本调用 SSH - 例如:

  case 'asdf.tcl':
    `ssh phpuser@servera '/servera/path/to/tclsh /servera/path/to/asdf.tcl'`
  break;

(单引号反引号)

请注意,您可以将执行运算符返回的内容存储在变量中或回显它 - 您可能希望回显返回值并将其包含2>&1在为调试而运行的每个命令的末尾。

相关内容