2014-09-29 56 views
0

我正在尝试使用该机器的私有IP地址执行远程bash脚本。它在同一个VLAN中。但是,我得到null的结果是调用远程bash脚本的正确方法?无法通过php调用远程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

咳嗽弹震 – 2014-09-29 02:03:29

+0

你是否意识到如果可能的话,什么都不会阻止你在谷歌的服务器上调用bash脚本? – zerkms 2014-09-29 02:05:08

+0

有没有其他方法以更安全的方式调用bash脚本?例如,从PHP触发cron作业,而后者又有命令执行该shell脚本? – user3846091 2014-09-29 02:24:16

回答

0

尝试使用:

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

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

0

我会建议寻找一个为此设计的库phpseclibhttp://phpseclib.sourceforge.net/)让我想起了我有一些经验使用这个库的密钥生成,但它可以让你创建一个简单的SSH连接使用任何通常协议和运行命令通过SSH连接。

文档的检查this section