Page 3 sur 5

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 13:58
par mike913
zeverybest a écrit : Le message error.log de /var/log/apache2 me donne ceci :

Traceback (most recent call last):
File"/var/www/brouillon/monfichier.py, line3 in <module>
import RPi.GPIO as GPIO
RPi.GPIO.setupExecution : No acces to /dev/mem. Try running as root

Pourtant, j'ai donné tous les droit a monfichier.py et l'ai associé a www-data
le message est clair: www-data n' a pas accès à /dev/mem essayez en tant que root.

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 14:01
par zeverybest
vague nerd a écrit :Nous sommes plusieurs à vous avoir recommander de tester en utilisant des noms de fichiers absolus, c'est à dire en indiquant le répertoire complet du fichier. Par exemple /home/pi/script.sh.
Avez-vous essayé ? J'ai raté quelque chose ?

Cdt.
Absloument
monfichier.py se trouve dans : /var/www/brouillon et j'ai essayé cette syntaxe : python /var/www/brouillon/monfichier.py

J'ai d’ailleurs essayé avec ou sans le chemin complet

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 14:05
par zeverybest
mike913 a écrit :
zeverybest a écrit : Le message error.log de /var/log/apache2 me donne ceci :

Traceback (most recent call last):
File"/var/www/brouillon/monfichier.py, line3 in <module>
import RPi.GPIO as GPIO
RPi.GPIO.setupExecution : No acces to /dev/mem. Try running as root

Pourtant, j'ai donné tous les droit a monfichier.py et l'ai associé a www-data
le message est clair: www-data n' a pas accès à /dev/mem essayez en tant que root.
Comment puis je essayer en ROOT depuis mon interface PHP?

En console sur le raspberry, cela fonctionne avec sudo devant ma ligne, mais en mettant sudo dans la ligne de mon system() en php j'ai le message : sudo : no tty present and no askpass program specified dans le error.log

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 14:45
par mike913
Il faut ajouter www-data au groupe propriétaire du device.
J' avais le même problème avec ttyUSB0 qui appartient au groupe dialout, et donc pour y avoir accès à partir d' apache:
sudo usermod -a -G dialout www-data
mais dans ton cas je ne sais pas le groupe propriétaire de /dev/mem

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 14:49
par zeverybest
mike913 a écrit :Il faut ajouter www-data au groupe propriétaire du device.
J' avais le même problème avec ttyUSB0 qui appartient au groupe dialout, et donc pour y avoir accès à partir d' apache:
sudo usermod -a -G dialout www-data
mais dans ton cas je ne sais pas le groupe propriétaire de /dev/mem
c'est ROOT qui est propriétaire du fichier /dev/mem

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 14:50
par mike913
Root est le propriétaire mais il y a aussi un groupe, et c'est le groupe quil faut connaitre.

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 15:11
par zeverybest
mike913 a écrit :Root est le propriétaire mais il y a aussi un groupe, et c'est le groupe quil faut connaitre.
kmem

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 18:07
par domi
Bonjour,

De mémoire, il faut bien lancer le script Python via la commande sudo depuis la ligne d'exécution PHP.

Mais pour ce faire, il faut ajouter dans le sudoers l'autorisation à www-data de lancer cette commande avec sudo.

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 18:13
par zeverybest
en ajoutant ça?

www-data ALL=(ALL) NOPASSWD:ALL

c'est bien ça?

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 18:17
par zeverybest
Genial

ça fonctionne

100000 Merci