В настоящее время я хотел бы вызвать скрипты языка команд инструмента, которые находятся на сервере A.
Когда пользователь просматривает веб-сайт, размещенный на сервере B. Когда пользователь нажимает кнопку, например, я хотел бы, чтобы файл php выполнял сценарии Tcl, расположенные на сервере B.
Как я могу это сделать?
Заранее спасибо.
Использовать Оператор выполнения 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 выполнял сценарии Tcl, расположенные на сервере B.
... но если вы хотите вызвать сценарий на сервере "A", вы можете настроить SSH-ключ а затем вызовите SSH из вашего скрипта на сервере «B» - например:
case 'asdf.tcl':
`ssh phpuser@servera '/servera/path/to/tclsh /servera/path/to/asdf.tcl'`
break;
(Одинарные кавычки и обратные кавычки)
Обратите внимание, что вы можете сохранить то, что возвращается из оператора выполнения, в переменной или повторить его - вы можете захотеть повторить возвращаемое значение и включить 2>&1
в конце каждой команды, которую вы запускаете для отладки.