2016-12-01 108 views
0

我想咆哮,一个PHP页面上我beaglebone黑色运行代码:运行Python代码上beaglebone

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权限。我真的不知道为什么它不起作用。有人有什么主意吗?

谢谢。

+2

你是否收到任何错误信息?你在登录调试模式? –

+1

在许多系统上,'Apache'作为'www-data'用户运行,具有不同的权限和不同于普通用户的环境变量。 – furas

+0

谢谢@furas。我对sudoers文件授予了www-data许可。 –

回答

0

我真的不想深究这个问题。但是我写这个是因为我曾经玩过BBB,并且在运行python脚本时出现了一个有趣的权限错误。我正在运行没有sudo的命令。请尝试。我不是为什么它应该有一个sudo,但它的工作原理!

0

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