gpt4 book ai didi

php - 用php执行shell命令

转载 作者:行者123 更新时间:2023-12-04 14:48:48 27 4
gpt4 key购买 nike

我正在尝试使用 php/html 按钮执行 bash 脚本来唤醒我的 nas。

<form action="" method="POST">
<input type="submit" value="Wake NAS" name="zero" />
</form>
<?php
if (isset($_POST["zero"])){
#echo "Hello World!";
shell_exec("/var/www/html/wakenas.sh &");
}?>

按下按钮时打印“Hello World”。但代码不会被执行。wakenas.sh 看起来像这样,如果我通过 shell 执行它就可以工作

#!/bin/bash
etherwake -D "BC:5F:F4:09:E1:07"
echo "why!?!?!" > "/var/www/html/works.txt"
exit 1

wakenas.sh 拥有所有权利

也许你们知道为什么不执行。

提前致谢

最佳答案

执行脚本的简单而安全的方法是输入 sudoers。假设您的 Linux 发行版是 Debian base,并且运行 Web 服务器的用户是 www-data,那么您可以创建一个文件,例如 /etc/sudoers.d/wakeup_ether

Cmnd_Alias WAKE_UP_CMD = /var/www/html/wakenas.sh
www-data ALL=NOPASSWD: WAKE_UP_CMD

修改您的脚本以在命令前添加 sudo

shell_exec("sudo /var/www/html/wakenas.sh &");

引用:https://help.ubuntu.com/community/RootSudo

关于php - 用php执行shell命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com