[RISOLTO]Debian e Raspberry Pi:Script Python lanciato da PHP

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
razielmitico
Prode Principiante
Messaggi: 53
Iscrizione: martedì 13 agosto 2013, 16:49
Distribuzione: Xubuntu

[RISOLTO]Debian e Raspberry Pi:Script Python lanciato da PHP

Messaggio da razielmitico »

Salve ragazzi.
Ho Raspberry PI B+ con montato il sistema operativo Raspbian.
Sto cercando di far partire uno script python da php.

Ecco lo script python (che lanciato da terminale funziona perfettamente):

Codice: Seleziona tutto

    #! /usr/bin/python

    import RPi.GPIO as gpio #importa la libreria RPI.GPIO e gli assegna il nome gpi$
    import time #importiamo la libreria time per il delay

    gpio.setmode(gpio.BCM) #imposta il tipo di nome dei pin
    gpio.setup (17,gpio.OUT,initial=1) #imposta il pin GPIO17 come output e con val$

    time.sleep(5)

    gpio.output (17,0) #impostiamo il ping GPIO17 ad 1

    gpio.cleanup() #riportiamo tutto alle configurazioni di default

    exit()
ed ecco lo script php:

Codice: Seleziona tutto

<?
  exec("/var/www/prova/accensione.py");
 ?>
ma lo script python (che accende un led) non parte e mi spunta pagina bianca sul browser.
Come mai? sapete aiutarmi a risolvere questo problema?
Ultima modifica di razielmitico il martedì 7 aprile 2015, 21:47, modificato 2 volte in totale.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da SuperStep »

ma www-data puo' eseguire quello script? controlla
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
razielmitico
Prode Principiante
Messaggi: 53
Iscrizione: martedì 13 agosto 2013, 16:49
Distribuzione: Xubuntu

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da razielmitico »

Non sono proprio sicuro di come si faccia.
Ho dato il comando ls -l sulla directory dove si trova il file,e ho impostato i permessi a=rwx (a tutti,tutti i permessi) in più ho provato anche a cambiare il propietario del file (con chown) e ho impostato www-data.

Come verifico se www-data può eseguire lo script?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da Zoff »

COsì:

Codice: Seleziona tutto

sudo -u www-data /var/www/prova/accensione.py
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
razielmitico
Prode Principiante
Messaggi: 53
Iscrizione: martedì 13 agosto 2013, 16:49
Distribuzione: Xubuntu

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da razielmitico »

mi dice: No access to /dev/mem. Try running as root!
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da Zoff »

Prova ad aggiungere www-data al gruppo kmem
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
razielmitico
Prode Principiante
Messaggi: 53
Iscrizione: martedì 13 agosto 2013, 16:49
Distribuzione: Xubuntu

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da razielmitico »

Stesso errore e non mi fa avviare lo script
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da Zoff »

Allora prova aggiungendo a /etc/sudoers:

Codice: Seleziona tutto

www-data ALL = NOPASSWD:/var/www/prova/accensione.py
Poi testa con:

Codice: Seleziona tutto

sudo -u www-data sudo /var/www/prova/accensione.py
Aggiungi anche sudo al comando in php:

Codice: Seleziona tutto

exec("sudo /var/www/prova/accensione.py");
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
razielmitico
Prode Principiante
Messaggi: 53
Iscrizione: martedì 13 agosto 2013, 16:49
Distribuzione: Xubuntu

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da razielmitico »

Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4742847#p4742847][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Allora prova aggiungendo a /etc/sudoers:

Codice: Seleziona tutto

www-data ALL = NOPASSWD:/var/www/prova/accensione.py
Poi testa con:

Codice: Seleziona tutto

sudo -u www-data sudo /var/www/prova/accensione.py
Aggiungi anche sudo al comando in php:

Codice: Seleziona tutto

exec("sudo /var/www/prova/accensione.py");
Ho modificato il file sudoers (dando il comando sudo visudo).

Ho testato il secondo comando,avviandolo il codice viene eseguito (Si accende il led)

Ho modificato il file gpio2.php (che è lo script php) ma una volta aperta la pagina,il led non si accende.
Adesso mi chiedo,non è che magari php disattiva il comando exec in qualche modo?

Ho risolto il problema,utilizzando una libreria php,cioè questa:

phpseclib

che permette l'accesso al raspberry da php tramite un utente particolare,questo utente può essere root o www-data,qualunque abbia i permessi per accedere al file .py
Adesso funziona tutto perfettamente!

Se per esempio non si vuole accedere allo script con l'account root,si può creare un nuovo utente che abbia accesso di sola esecuzione sui file,poi basta aggiungere i permessi nel file sudoers (Zoff ha inserito la stringa da aggiungere al file) e l'utente potrà accedere al file.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Debian e Raspberry Pi: Script Python lanciato da PHP

Messaggio da SuperStep »

ricorda di aggiungere [Risolto]
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti