【问题标题】:Trying to run a python script via PHP button hosted on raspberry pi but failing尝试通过托管在树莓派上的 PHP 按钮运行 python 脚本但失败
【发布时间】:2016-09-18 06:27:00
【问题描述】:

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

【问题讨论】:

    标签: php python raspberry-pi


    【解决方案1】:

    您是否尝试将lampoff.pylampon.py的权限设置为777?

    chmod 777 /home/pi/lampoff.py &amp;&amp; chmod 777 /home/py/lampon.py

    【讨论】:

      【解决方案2】:

      我认为您需要在 python 脚本中添加“sudo”才能使其工作,这意味着您必须将 www-data 用户添加到 /etc/sudoers。

      shell_exec("sudo python /home/pi/lampon.py");
      

      exec("sudo python /home/pi/lampon.py");
      

      最近在Execute Python script from Php 上有另一个帖子处理这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多