Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Eseguire file .sh da php

    Salve a tutti,
    devo poter eseguire degli script .sh tramite php, so che esistono funzioni che consentono di fare questo come exec(), shell_exec(), popen() ecc ecc.

    Però questo esempio non funziona

    FILE prova.php
    Codice PHP:
    #!/home/httpd/php -q


    <?php
    shell_exec
    ('sh /path/prova.sh');
    ?>
    FILE prova.sh
    Codice PHP:
    #!/bin/sh

    echo "Ciao ciao" 
    se eseguo da shell il file prova.php tramite l'istruzione
    codice:
    ./prova.php
    non viene stampato "Ciao ciao".

    Perchè???? E poi come è possibile che se nel file .php inserisco
    Codice PHP:
    $output shell_exec('ps');
    echo 
    $output
    invece l'interazione con la shell va a buon fine???

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Non ho capito, l'ultimo esempio ti funziona o no? Comunque hai provato con system() ?

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    L'ultimo esempio mi funziona però calcola che non passa per il file prova.sh
    Cioè quello che mi chiede è perchè se faccio
    codice:
    $output = shell_exec('ps');
    echo $output;
    mi viene stampata la lista dei processi ma se faccio
    codice:
    shell_exec('sh /path/prova.sh');
    non viene lanciato lo script prova.sh ????

    Logicamente se lancio lo script prova.sh direttamente da shell e non da php mi viene stampato "Ciao ciao"

    Cmq si con system funziona!!!!
    Ma perchè con exec(), shell_exec e popen() invece no????

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Beh system() esegue direttamente il comando restituendo l'output perciò
    è il migliore in questo caso

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    l'unica cosa che mi viene in mente, visto che nel tuo esempio continui a scrivere /path/file.sh è che il path sia sbagliato
    sometimes it's just like teaching pigs how to fly

  6. #6
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    No il path è corretto.
    Cmq ho notato che ci sono dei comandi che il php non riesce a far eseguire alla shell, adesso non ricordo quali, ma in varie occassioni non funzionano.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    sei sicuro che l'utente di apache allora abbia i permessi per eseguire quel file?
    sometimes it's just like teaching pigs how to fly

  8. #8
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    In realtà come web server sto usando Boa, cmq si il web server è lanciato dall'utente root

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.