【发布时间】:2018-05-11 01:09:59
【问题描述】:
我正在尝试制作一个简单的 php 表单,该表单执行一个在远程服务器上创建密钥的 bash 脚本。我环顾四周,发现了几个不同的选择。我已经能够使用 shell_exec() 和 passthu() 获得一些结果,但仅适用于 ls 和 echo 之类的命令。问题是它没有向我显示输出。我不认为它被执行。我确信 bash 脚本可以正常工作,因为我每天都在使用它。
理想情况下,我想输入一个传递给脚本的值,然后显示输出。 Form Screenshot
表格:
<form action="aws_create.php" method="post">
<div class="form-group">
<input class="form-control" name="aws_id" id="inputawsid" type="number" aria-describedby="emailHelp" placeholder="000000000000">
</div>
<input type="submit">
</form>
POST:aws_create.php
<?php
$awsid = $_POST["aws_id"];
$output = passthru("/usr/local/bin/createkeys.sh $awsid");
echo "<pre>$output</pre>";
?>
【问题讨论】:
-
输出只是空的。它甚至没有显示 shell 错误
-
也试过“$output = exec('createkeys.sh '.escapeshellarg($awsid));”
-
/usr/local/bin/createkeys.sh这是做什么的? -
@ThiruShetty 它使用 AWS CLI 工具。它只是创建了一个 IAM ROLE。它可能有 3 个不同的 aws cli 命令。
-
你试过shell_exec吗?
标签: php bash twitter-bootstrap lamp