目前,我想调用位于服务器 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
在为调试而运行的每个命令的末尾。