【问题标题】:Run python code from PHP page on beaglebone从 beaglebone 上的 PHP 页面运行 python 代码
【发布时间】:2016-12-01 20:31:01
【问题描述】:

我正在尝试从我的 beaglebone black 上的 PHP 页面运行下面的代码:

import Adafruit_BBIO.PWM as PWM

red = "P8_13"
green = "P8_19"
blue = "P9_14"

PWM.start(red, 0)
PWM.start(blue, 0)
PWM.start(green, 0)

PWM.set_duty_cycle(red, 100)
PWM.set_duty_cycle(green, 0)
PWM.set_duty_cycle(blue, 0)

这段代码只是为了把我的 RGB LED 变成红色。

我的 PHP 页面如下:

<!DOCTYPE html>
<html>
<head>
        <meta charset="UTF-8">
        <title>RGB LED</title>
</head>
<body>
Testing led.py execution...<br>
<?php

exec( "python led.py" );

?>
<br>End of execution!<br>
</body>
</html>

我正在使用 Apache2 和 PHP5。

代码位于 PHP 页面的同一路径(“/var/www”)。我已经尝试过 exec、shell_exec 和系统命令来执行脚本。 LED 没有变成红色。该代码已经拥有 777 权限。我真的不知道为什么它不起作用。有人知道吗?

谢谢。

【问题讨论】:

  • 您是否收到任何错误消息?你在调试模式下登录吗?
  • 在许多系统上Apachewww-data 用户身份运行,与普通用户具有不同的权限和不同的环境变量。
  • 谢谢@furas。我在 sudoers 文件上授予了 www-data 的权限。

标签: php python python-3.x beagleboneblack beagleboard


【解决方案1】:

我真的不想深入研究这个问题。但是我给你写这个是因为我曾经玩过 BBB,并且在运行 python 脚本时遇到了一个有趣的权限错误。我正在运行没有sudo 的命令。请尝试一下。我不知道为什么它应该有一个 sudo 但它有效!

【讨论】:

    【解决方案2】:

    问题解决了。 谢谢@furas。 我在 sudoers 文件中添加了“www-data ALL=(root) NOPASSWD: /usr/bin/python”,并将 exec(“python led.py”) 更改为 exec(“sudo python led.py”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多