Avvio di script da una pagina web

C, C++, Java, ...

Avvio di script da una pagina web

Messaggioda ferlino » 07/12/2015, 17:50

Ho un raspberry (distro debian jessie) con dell'hardware collegato a porte USB. Ho realizzato degli script (sia bash che pyton) che comandano questo hardware e ne ottengono un output.
Questi script li posso avviare sia da linea di comando (con putty) oppure (con uno smartphone ed il protocollo SSH) da una app Android che ho scritto apposta.
Sul raspberry è installato apache e php; vedo correttamente su internet un microsito web (residente in /var/www/html) del raspberry, all'indirizzo http://nomesito.noip.com.
Adesso vorrei lanciare questi script da una mia apposita pagina web del microsito.
Nella pagina HTML ho un
Codice: Seleziona tutto
<a href="avvio.php">AVVIO</a>

e avvio.php è
Codice: Seleziona tutto
<?php
 Print "Hello, World! in var www html";
 ?>

Tutto OK: PHP funziona !
Ma se invece di avvio.php sostituisco prova.php
Codice: Seleziona tutto
<?php
/* prova.php */
echo exec('avvio.sh');
 ?>


Codice: Seleziona tutto
#!/bin/bash
# avvio.sh         
echo qualcosa


ottengo una bella pagina bianca, anche se scrivo '/var/www/html/avvio.sh'.
Ne deduco che NON sono in grado di avviare script da una pagina web, figuriamoci comandare dell'hardware !!!
Bisogna inoltre tener conto, per complicare le cose, che un mio script bash ha al suo interno una istruzione del tipo "sudo python nomescript.py".
Qualcuno può aiutarmi nel districarmi fra questi script confermandomi in primo luogo che è tecnicamente possibile realizzare quanto desiderato ?
Grazie per l'attenzione.
ferlino
Newbie
Newbie
 
Messaggi: 31
Iscritto il: 03/10/2015, 17:48

Re: Avvio di script da una pagina web

Messaggioda desperados » 08/12/2015, 9:11

avvio.sh probabilmente sta' scrivendo, però non sulla pagina web :)
prova a scrivere dentro avvio.sh
echo qualcosa > qualcosa.txt
e vediamo che succede
- Potrebbe esser peggio. - E come? - Potrebbe piovere!
desperados
Hero Member
Hero Member
 
Messaggi: 776
Iscritto il: 22/02/2008, 8:55

Re: Avvio di script da una pagina web

Messaggioda ferlino » 08/12/2015, 9:57

Lo script avvio.sh lanciato da linea di comando "./avvio.sh" scrive "qualcosa" nel file qualcosa.txt (però il file qualcosa.txt deve esistere in precedenza e deve avere tutti i permessi di scrittura).
Per maggiore chiarezza riporto la successione degli eventi :

1) pagina HTML
<a href="prova.php"><b>PROVA.PHP</b></a>

2) prova.php
<?php
echo exec('avvio.sh');
?>

3) avvio.sh
#!/bin/bash
echo qualcosa > qualcosa.txt

Purtroppo il contenuto del file qualcosa.txt resta immutato e la pagina nel browser è inesorabilmente bianca.
ferlino
Newbie
Newbie
 
Messaggi: 31
Iscritto il: 03/10/2015, 17:48

Re: Avvio di script da una pagina web

Messaggioda marcomg » 08/12/2015, 18:48

È disattivata la modalità sicura di PHP?
Windows is what you open when you want fresh air from outside.
Avatar utente
marcomg
Hero Member
Hero Member
 
Messaggi: 5574
Iscritto il: 22/08/2011, 18:54

Re: Avvio di script da una pagina web

Messaggioda ferlino » 08/12/2015, 19:57

Per quel che ne capisco io è disabilitata. Utilizzo php5.
Nel file /etc/php5/apache2/php.ini leggo
[SQL]
sql.safe_mode = Off

ma è relativo a SQL; c'entra qualcosa ?
Inoltre, leggendo un certo suggerimento per verificare se è abilitata o meno questa modalità, ho creato uno script modsicura.php che, a quanto ho capito io non mi da errore ma legge il lungo file in questione.
Codice: Seleziona tutto
<?php
 readfile('/etc/passwd');
?>

Nella documentazione di php.net leggo :
safe_mode boolean
Abilita o disabilita la modalità sicura di PHP. Se PP è compilato con --enable-safe-mode è On di default, altrimenti è Off.
Avviso
Questa funzionalità è stata DEPRECATA dal PHP 5.3.0 e RIMOSSA dal PHP 5.4.0.

Preciso che al momento sia i files html che php che sh sono tutti in /var/www/html.
ferlino
Newbie
Newbie
 
Messaggi: 31
Iscritto il: 03/10/2015, 17:48


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti