2015-12-23 3 views
0

У меня есть две машины, 192.168.10.6 (локальная машина), которая имеет мой php-скрипт и 192.168.12.163 (удаленный компьютер), который имеет мой скрипт python. Как запустить этот удаленный сценарий python из локального PHP-скрипта?Запуск удаленного сценария python из локального PHP-скрипта

У меня есть рабочий код для запуска локального скрипта python из локального PHP-скрипта, но я не могу запустить удаленный сценарий Python из локального PHP-скрипта.

+1

Можете ли вы ssh на пульт? Вы можете использовать ssh для запуска процесса на удаленном компьютере: http://www.cyberciti.biz/tips/linux-running-commands-on-a-remote-host.html – urban

+0

Да, я могу ssh удаленному серверу, но я хотите, чтобы это произошло через PHP-скрипт, вызывающий скрипт python, расположенный на удаленной машине. –

+0

Вы хотите, чтобы скрипт python запускался на вашем локальном компьютере или на удаленной машине? – SOFe

ответ

1

Я собирался предложить, используя shell_exec/exec нереститься SSH и запустить команду на удаленном хосте, например:

$out = shell_exec('ssh [email protected] "ls -la"'); 

Однако я см., что PHP поддерживает это с помощью ssh2_exec, например:

$connection = ssh2_connect('192.168.12.163', 22); 
ssh2_auth_password($connection, 'username', 'password'); 
$stream = ssh2_exec($connection, 'python /path/to/script'); 

Если ssh2 недоступен на вашем сервере, и вы не можете его установить, вы можете попробовать phpseclib (см., Например, here)

0

Посмотрите на Paramiko

import paramiko, base64 
key = paramiko.RSAKey(data=base64.decodestring('AAA...')) 
client = paramiko.SSHClient() 
client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key) 
client.connect('myRemoteMachine', username='strongbad', password='thecheat') 
stdin, stdout, stderr = client.exec_command('python myScript.py') 
for line in stdout: 
    print '... ' + line.strip('\n') 
client.close()