试图通过在raspberry pi上托管的PHP按钮运行python脚本但是失败了

时间:2016-09-17 09:58:43

标签: php python raspberry-pi

我有一个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>

2 个答案:

答案 0 :(得分:0)

您是否尝试过将lampoff.pylampon.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");

最近在Execute Python script from Php

上发布了另一篇文章