Raspberry PI: PHP call script python con sudo

sto eseguendo Nginx sul mio Raspberry PI con PHP 5.4.14 (fpm-fcgi). Funziona tutto bene. Ma in uno script faccio una chiamata di shell usando shell_exec.

echo shell_exec("sudo python " . $file); 

funziona bene se uso la console con

 php test.php 

ma se uso il browser per call questo file, il file php verrà eseguito ma non ricevo output da shell_exec (nemless un messaggio di errore).

Quindi spero che tu possa aiutarmi a risolvere questo problema.

Il file python chiamato fa uso del GPIO, quindi è necessario sudo, giusto?

Ecco il mio codice Python:

 #!/usr/bin/env python try: import RPi.GPIO as GPIO except RuntimeError: print "Error Importing GPIO. Did your forgot the superuser privilieges?" GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(3, GPIO.OUT) GPIO.output(3, not GPIO.input(3)) print "New LED state is: ", GPIO.input(3) #GPIO.cleanup() 

per riferimento futuro:

Ho trovato un – io i miei occhi – non una soluzione davvero bella:

 sudo echo "apache ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 

Trovato qui .

Mm, ho provato con questo semplice esempio:

/Scripts/test.py

 #!/usr/bin/env python print (str('hello world')) 

/var/www/test.php

 <?php echo shell_exec('/Scripts/test.py'); ?> 

tramite un browser, mostrami "ciao mondo"

Forse prova questo:

 chmod a+x your_py_file.py 

Spero che aiuti ..