Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema con exec / shell_exec

    ciao!

    dovrei eseguire questo comando da php:
    codice:
    cp ../../ORDINI/C4B_ORDINI.txt /media/C4B_C/temp/ordini/C4B_ORDINI.txt
    se lancio questo comando da shell, con lo stesso utente con cui eseguo lo script php, funziona.

    se invece provo a fare questo, mi esce NULL sulla pagina, e il file non viene copiato:
    Codice PHP:
    var_dump(shell_exec("cp ../../ORDINI/C4B_ORDINI.txt /media/C4B_C/temp/ordini/C4B_ORDINI.txt")); 
    se invece uso solo exec:
    Codice PHP:
    var_dump(exec("cp ../../ORDINI/C4B_ORDINI.txt /media/C4B_C/temp/ordini/C4B_ORDINI.txt"));
    string(0"" 
    dove sto sbagliando??

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    shell_exec dovrebbe restituire lo stdout del comando o null in caso di errore/nessun output. Se ci sono degli errori (es sui permessi) questi dovrebbero finire sullo sdterr.

    Prova a dare a shell_exec questo, e vedi se è ci sono errori:

    Codice PHP:
    var_dump(exec("cp ../../ORDINI/C4B_ORDINI.txt /media/C4B_C/temp/ordini/C4B_ORDINI.txt 2>&1")); 

  3. #3
    ciao!

    in effetti così mi da questo errore:
    codice:
    string(91) "cp: cannot create regular file '/media/C4B_C/temp/ordini/C4B_ORDINI.txt': Permission denied"
    però questi sono i permessi sulla directory:
    codice:
     ls -l /media/C4B_C/temp/
    drwxr-xr-x 2 webserver root       0 ago  1 10:42 ordini
    l'utente con cui lancio il comando a mano, e con cui eseguo lo script, è sempre webserver.
    quindi in teoria dovrebbe funzionare!

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Sei sicuro che php viene eseguito come utente webserver ?
    Se dai

    echo shell_exec('whoami');

    cosa ti scrive?

  5. #5
    Quote Originariamente inviata da boots Visualizza il messaggio
    Sei sicuro che php viene eseguito come utente webserver ?
    Se dai

    echo shell_exec('whoami');

    cosa ti scrive?
    eh hai ragione, gli script php girano con un altro utente: www-data.

  6. #6
    ok, ho cambiato l'utente che monta la directory e adesso funziona.

    grazie!!

  7. #7
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626



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.