无法从php调用远程bash脚本

时间:2014-09-29 02:02:24

标签: php bash

我正在尝试使用该计算机的专用IP地址执行远程bash脚本。它在同一个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"

输出:

{&#34;导致&#34;:空}

2 个答案:

答案 0 :(得分:0)

尝试使用:

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

如果这是在另一台服务器上,我非常怀疑你是否能够执行它。你必须设置一个777权限(可能,这是一个安全风险,取决于脚本。另外,如果它在另一台服务器上,为什么不把它放在运行脚本的同一台服务器上?

答案 1 :(得分:0)

我建议您查看专为此设计的库。我想到了 phpseclib http://phpseclib.sourceforge.net/)。我有一点使用这个库进行密钥生成的经验,但是它允许你使用任何常用协议创建一个简单的SSH连接,并通过SSH连接运行命令。

检查文档的this section