我有一个php脚本应该(我认为)运行python脚本来控制energenie无线电控制的插座,具体取决于所选的按钮。它似乎工作在按下按钮时回复正确的消息,但python脚本似乎没有运行。我添加了一行:
www-data ALL = NOPASSWD:/ usr / bin / python /home/pi/lampon.py
这应该赋予apache用户运行python脚本的权限,至少打开电源插座但它不起作用。当通过pi命令行本身运行时,脚本本身可以正常工作。有什么建议? (php的代码如下)
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>LED Control</title>
</head>
<body>
LED Control:
<form method="get" action="energenie.php">
<input type="submit" value="ON" name="on">
<input type="submit" value="OFF" name="off">
</form>
<?php
if(isset($_GET['on'])){
shell_exec("python /home/pi/lampon.py");
echo "LED is on";
}
else if(isset($_GET['off'])){
shell_exec("python /home/pi/lampoff.py");
echo "LED is off";
}
?>
</body>
</html>
答案 0 :(得分:0)
您是否尝试过将lampoff.py
和lampon.py
的权限设置为777?
chmod 777 /home/pi/lampoff.py && chmod 777 /home/py/lampon.py
答案 1 :(得分:0)
我认为你需要添加&#34; sudo&#34;它的python脚本工作,这意味着你必须将www-data用户添加到/ etc / sudoers。
shell_exec("sudo python /home/pi/lampon.py");
或
exec("sudo python /home/pi/lampon.py");
上发布了另一篇文章