Невозможно вызвать удаленный bash-скрипт из переполнения стека

Я пытаюсь выполнить сценарий удаленного Bash, используя частный IP-адрес этой машины. Он находится в той же VLAN. Тем не менее, я получаю результат NULL это правильный способ для вызова сценария удаленного Bash?

<?php

header('Content-Type: application/json');

$result =shell_exec('sh http://10.xxx.77.xxx/script/helloworld.sh ');

/* making json string with the result from shell script */
echo json_encode(array("result"=>$result));
/* and we are done and exit */

?>

helloworld.sh

#!/bin/bash
echo "Hello World"

Выход:

{ «Результат»: нулевая}

0

Решение

Я бы порекомендовал заглянуть в библиотеку, предназначенную для этого. phpseclib (http://phpseclib.sourceforge.net/) приходит мне в голову. У меня был небольшой опыт использования этой библиотеки для генерации ключей, но она позволит вам создать простое соединение SSH, используя любой из обычных протоколов, и запускать команды через соединение SSH.

Проверьте эта секция документации.

0

Другие решения

Попробуйте использовать:

exec('./path/to/bash', $result);

И если это на другом сервере, я очень сомневаюсь, что вы сможете выполнить его. Вам необходимо установить разрешение 777 (возможно, это риск для безопасности, в зависимости от сценария. Кроме того, если оно установлено на другом сервере, почему бы просто не поместить его на тот же сервер, на котором выполняется сценарий?

0