【发布时间】:2016-04-08 17:55:20
【问题描述】:
我有一个如下的 shell 脚本
#/bin/bash
SSHPASS='user'
SSHHOST='192.168.1.20'
SSHUSER='user'
ssh -t $SSHUSER@$SSHHOST << EOF
echo "Changing Directoy to Cloud"
cd /home/user/cloudit_2/it_cloud
git status
sleep 3
touch /tmp/abc.txt
ls -lah /tmp
rm -rf /tmp/abc.txt
sudo -S service ssh restart
$SSHPASS
EOF
我想从网页上运行上面的脚本,所以我在下面创建了我的 HTML 文件
<html>
<h1>Deploy</h1>
<form name="input" action="install.php">
<input type="submit" value="Submit">
</form>
</html>
install.php 如下
<?php
$output = shell_exec("/bin/sh a.sh");
echo "<pre>$output</pre>";
?>
当我使用 php install.php 时,它工作正常。但是,当我尝试从网页运行它时,它没有工作。
【问题讨论】:
-
你应该添加如何它不工作
-
尝试使用
exec而不是shell_exec。不过这是非常危险的。 -
1. php error_log 是否包含任何相关内容? 2. 为什么要使用没有 GET 或 POST 的表单?更好地进行简单的 AJAX 调用...
-
ALSO, note that shell_exec() does not grab STDERR, so use "2>&1" to redirect it to STDOUT and catch it.php.net/manual/en/function.shell-exec.php -
谢谢,我添加了“2>&1”并得到以下错误 - :无法创建目录'/var/www/.ssh'。主机密钥验证失败。