目前,我想调用位于服务器A中的工具命令语言脚本。
当用户浏览服务器B中托pipe的网站时。例如,当用户点击一个button时,我想让php文件执行位于服务器B中的Tcl脚本。
我怎么做?
先谢谢你。
使用PHP执行操作符 (注意,您应该非常小心 – 如果可能,限制为有效的脚本,而不是让用户在GET或POSTvariables中指定任意命令)。
例:
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中托pipe的网站时。例如,当用户点击一个button时,我想让php文件执行位于服务器B中的Tcl脚本。
…但是如果您想在服务器“A”上调用脚本,则可以设置一个SSH密钥 ,然后从服务器“B”上的脚本调用SSH,例如:
case 'asdf.tcl': `ssh phpuser@servera '/servera/path/to/tclsh /servera/path/to/asdf.tcl'` break;
(单引号和反引号)
请注意,您可以将执行操作符返回的内容存储在variables中,或将其回显 – 您可能需要回显返回值,并在运行debugging的每个命令末尾包含2>&1
。