单击此处(moodle)> php执行bash并重定向网页>脚本运行并启动无头vm。 php文件保存到/ var / www / html / moodle 脚本保存到/etc/init.d html代码显然嵌入在网站中
<form action="http://xxx.xxx.xxx.xxx/moodle/scriptname.php">
<input type="submit" value="Button name">
</form>
php配置
<?php
putenv("PATH=/etc/init.d/:" .$_ENV["PATH"]."");
$output = "<pre>".shell_exec("scriptname.sh")."</pre>";
echo $output;
header('Location:http://XXX.XXX.X.XX/moodle/mod/page/view.phpid=133&forceview=1');
?>
脚本
#! /bin/sh
# /etc/init.d/StartVM
#
#Edit these variables!
VMUSER=myusername
VMNAME="nameofvm"
echo "Starting VirtualBox VM..."
sudo -H -b -u $VMUSER /usr/bin/VBoxVRDP -s "$VMNAME"
exit 1
;;
esac
exit 0
我不知道为什么这行不通。在终端中运行时,脚本会产生结果。 html代码根据php文件重定向网页,但单击“ mudele”中的按钮时脚本不会执行。
感谢您的帮助。 谢谢 MAC
答案 0 :(得分:0)
在脚本中,使用sudo的完整路径( / usr / bin / sudo )并根据需要修改sudoers文件( Lawrence Cherone在注释中指出)。