sono nuovo ma non di linux, o meglio anche di linux me ne occupo solo da 10 anni ma non professionalmente, qualche lavoretto nulla di che.
Per tanti anni ho sempre usato windows e poi soono passato anche ad altre piattafome e con linux uso molto con la versione server.
Non ho mai digerito a fondo gli script bash quindi vi chiedo un aiuto.
Attulamente sto lavorando ad un progetto domenicale casalingo e ho installato una macchina virtuale con ubuntu server 20.04
Lo script prevede l'upload di un qualsiasi files, questo viene zippato da 7zip, protetto da password e poi vorrei che fosse caricato su cloud mega.
La parte ajax/javascirpt e php e tutto apposto, ho scritto dei codici ben collaudati nel tempo e non presentano problemi anche perchè lo stesso lo usato in php 8.0 con qualche aggiustamento ma nulla di che.
La versione installata sul server e php 7.4.30
Quindi ho installato mega-cmd come da istruzioni git-hub con tutte le dipendenze richieste, tutto perfettamente funzioante e non è stato difficile capire il funzionamento.
ora il problema e questo.
Se eseguo, una volta logato o la sessione rimane aperta fino a quando io non la chiudo anche se dovessi fare un riavvio :
Codice: Seleziona tutto
mega-ls
Tutti gli altri comandi come "mega-put" per caricare i file, o "mega-mkdir [mia cartella]" che mi occorrono funzinano perfettamente.
IL problema nasce quando tento di fare questa operazione dal browser con script php
ovvero un semplice codice
Codice: Seleziona tutto
<?php
$out = shell_exec("mega-ls");
echo "<pre>$out</pre>";
?>
nel log di mega cmd non ho errori, in php non ho errori e sono tutti abilitati dal php.ini
ora se invece al posto di "mega-ls" eseguo lo stesso script ma cambiando comando con un semplice "php --version" viene eseguito e stampato.
se invece eseguo da terminale il file php :
Codice: Seleziona tutto
php test.php
Premetto che www-data e chmod 755 su file e cartelle sono settati ma non c'e nulla da fare non lo esegue.
La documentazione ufficiale di mega non da nessuna limitazione a riguardo, anzi posso creare script sh che allo stesso modo non esegue se lanciati da browser.
e evidente che sto dimenticando, non conosco o sbagliando qualcosa.
ma cosa?