|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
[PHP] Lanciare eseguibile sul server
Ciao a tutti, premetto che sono alle prime armi con PHP, sto realizzando una piccola interfaccia web per un dispositivo embedded e ho un problema nel fare una cosa.
Su una pagina PHP devo mettere un bottone che una volta schiacciato esegua un'eseguibile sul server, che si occuperò di fare delle operazioni sul server... Come è possibile realizzarlo? vi posto quello che ho fatto... non ridete perchè sto usando php tipo da 1 giorno Codice:
<? include("check.php"); ?>
<?php
if (isset($_POST["ledon"])) {
exec("/var/www/./Test.exec");
}
?>
<html>
<CENTER>
<form method=post action="leds.php">
<input type="submit" value="Accendi LED" name="ledon">
</form>
</CENTER>
</body>
</html>
Grazie dell'aiuto Ciao, Diego
__________________
Cpu: Intel Core 2 Quad [email protected] FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Nessuno mi sa aiutare?
__________________
Cpu: Intel Core 2 Quad [email protected] FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Hai provato il codice che hai scritto?
Funziona? Se sì, dov'è il tuo dubbio? Se no, qual è il problema? La funzione exec è quella che in Php ti serve per eseguire comandi sul server, quindi il primo passo direi che l'hai fatto giusto...
__________________
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
Quote:
TI spiego il mio problema, l'eseguibile in questione si occupa di abilitare una delle linee di uscita digitali GPIO gestite tramite sysfs, l'eseguibile lanciato in locale funziona tranquillamente. Quando visualizzo la pagina WEB e schiaccio il pulsante praticamente non avviene nulla, quindi è come se l'eseguibile non venisse lanciato... Eppure a me il codice sembra corretto... anche se ammetto che sono veramente alla prime armi con il php. Ciao, Grazie
__________________
Cpu: Intel Core 2 Quad [email protected] FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Codice:
echo 'EXEC';
__________________
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2001
Città: Bergamo (prov.)
Messaggi: 2084
|
malocchio ho appena avuti l'illuminazione...
Il server WEB gira sotto l'utente www-data, è vero che l'eseguibile ha permessi 755 quindi può essere lanciato anche dall'utente www-data ma le oprazione che deve compiere l'eseguibile richiedono permessi di root!!! E' bastato settare il bit di SETUID e tutto adesso funziona correttamente! Ne approfitto per chiederti una cosa che probabilmente per te è banale, mettiamo che metto in un file la seguente parte PHP e niente altro: Codice:
$last_line = system('uname -ar', $retval);
Invece per quanto riguarda la variabile $retval il manuale di PHP dice: "If the return_var argument is present, then the return status of the executed command will be written to this variabile." quindi mi sembra di capire che da questa riuscirei a capire se il comando è andato a buon fine o meno... sbaglio? Ciao
__________________
Cpu: Intel Core 2 Quad [email protected] FSB@1880MHz Dissy: ASUS Triton 70 RAM: 4x1GB Corsair XMS2 DHX 5-5-5-12@940MHz MotherBoard: ASUS P5K-PRO Sk.Video: MSI GeForce GTX560Ti Twin Frozr II OC@950/1900/4200MHz Sk.Audio: Creative X-Fi XtremeMusic SSD: Crucial MX100 256GB HDD: 2x Seagate Barracuda 7200.11 500GB Masterizzatore: Pioneer 111D@L Monitor: EIZO Foris FS2333 23" Steam ID: Horo86 Battle.net TAG: Horo86#2488 |
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Quote:
Il tuo ragionamento mi sembra giusto, se l'eseguibile che chiami restituisce un valore in base al successo o meno dell'operazione tutto dovrebbe andare come pensi tu.
__________________
|
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:25.




















