2016-12-01 133 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」)。