2016-12-01 2 views
0

Je suis en train d'exécuter le code ci-dessous à partir d'une page PHP sur mon BEAGLEBONE noir:Run code python de la page PHP sur 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) 

Ce code est juste pour allumer mon RGB LED rouge.

Ma page PHP ci-dessous:

<!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> 

J'utilise Apache2 et PHP5.

Le code est sur le même chemin de la page PHP ("/ var/www"). J'ai déjà essayé exec, shell_exec et les commandes système pour exécuter le script. La LED ne devient pas rouge. Le code a déjà 777 autorisations. Je ne sais vraiment pas pourquoi ça ne marche pas. Est-ce que quelqu'un a une idée?

Merci.

+2

avez-vous des messages d'erreur? vous connectez-vous en mode débogage? –

+1

sur de nombreux systèmes 'Apache' fonctionne en tant qu'utilisateur' www-data' avec des permissions différentes et avec des variables d'environnement différentes de celles de l'utilisateur normal. – furas

+0

Merci @furas. J'ai donné la permission à www-data sur le fichier sudoers. –

Répondre

0

Je ne veux pas vraiment aller loin avec ce problème. Mais je vous écris parce que j'ai déjà joué avec un BBB et que j'ai eu une erreur d'autorisation amusante lors de l'exécution de scripts python. Je cours des commandes sans sudo. Essayez-le. Je ne sais pas pourquoi il devrait avoir un sudo mais ça marche!

0

Problème résolu. Merci @furas. J'ai ajouté "www-data ALL = (racine) NOPASSWD:/usr/bin/python" au fichier sudoers et a également changé exec ("python led.py") en exec ("sudo python led.py").