PHP将不会在Ubuntu服务器中执行bash

时间:2018-08-22 20:51:58

标签: php html bash moodle

  1. 我正在尝试使用指向PHP文件的html表单操作,以便在Ubuntu服务器中在后台执行.sh脚本。
  2. 单击此处(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

1 个答案:

答案 0 :(得分:0)

在脚本中,使用sudo的完整路径( / usr / bin / sudo )并根据需要修改sudoers文件( Lawrence Cherone在注释中指出)。