我正在尝试使用该计算机的专用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;:空}
答案 0 :(得分:0)
尝试使用:
exec('./path/to/bash', $result);
如果这是在另一台服务器上,我非常怀疑你是否能够执行它。你必须设置一个777权限(可能,这是一个安全风险,取决于脚本。另外,如果它在另一台服务器上,为什么不把它放在运行脚本的同一台服务器上?
答案 1 :(得分:0)
我建议您查看专为此设计的库。我想到了 phpseclib (http://phpseclib.sourceforge.net/)。我有一点使用这个库进行密钥生成的经验,但是它允许你使用任何常用协议创建一个简单的SSH连接,并通过SSH连接运行命令。
检查文档的this section。