2016-12-01 8 views
0

Я пытаюсь запустить код ниже с PHP страницы на моем beaglebone черный:Выполнить код питона из PHP-страницы на 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 светодиод красного цвета.

Мой 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 и системные команды для выполнения скрипта. Светодиод не загорится красным. Код уже имеет разрешение 777. Я действительно не знаю, почему он не работает. Кто-нибудь есть идеи?

спасибо.

+2

У вас есть сообщения об ошибках? вы входите в режим отладки? –

+1

на многих системах 'Apache' работает как пользователь' www-data' с разными разрешениями и с разными переменными среды, чем обычный пользователь. – furas

+0

Спасибо @furas. Я дал разрешение на www-data в файле sudoers. –

ответ

0

Я действительно не хочу углубляться в эту проблему. Но я пишу вам это, потому что однажды играл с BBB и имел смелую ошибку разрешения при запуске скриптов python. Я выполнял команды без sudo. Попробуйте. Я не понимаю, почему он должен иметь sudo, но он работает!

0

Проблема решена. Спасибо @furas. Я добавил «www-data ALL = (root) NOPASSWD:/usr/bin/python» в файл sudoers, а также изменил exec («python led.py») на exec («sudo python led.py»).