Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Eseguire script bash da php
Forum - PHP - Eseguire script bash da php

Avatar
crack001 (Normal User)
Rookie


Messaggi: 52
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 13:41
Domenica, 25/03/2012
Salve gente, e buona domenica...avrei un piccolo problema che non riesco a risolvere, in pratica sto cercando di eseguire uno script in bash che viene richiamato da uno script php (tutto sopra un server linux), io inserisco un url da un form, e poi il la parte php mi richiama lo script in bash, che non fa altro che eseguire un comando di youtube-dl...per eseguire lo script sto usando shell_exec(), solo che questo funziona se eseguo comandi basilari della shell, come pwd, cd, ls etc....se invece voglio eseguire uno script

Codice sorgente - presumibilmente Plain Text

  1. Codice sorgente - presumibilmente Plain Text

  2. ./command.sh $link




mi da problemi, o meglio mi stampa le prime 2 linee di output del comando nello  script sulla pagina web e si blocca, e chiaramente il comando presente nello script non viene eseguito correttamente visto che sul server non compare il file scaricato.

Ho letto che per eseguire script esterni doveva essere abilitato il safe_mode, e l'ho messo ad On, poi dal manuale di php ho anche letto che c'è bisogno di settare il max_execute_limit per l'esecuzione di un processo esterno però non ne sono tanto sicuro, prima di combinare guai preferisco chiedere a persone più esperte di me xD   attendo vostre riposte :yup::yup::yup:

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Up
1
Down
V
Segnala al moderatore
Postato alle 21:08
Lunedì, 26/03/2012
Chiaramente un problema di timeout. http://php.net/manual/en/function.set-time-limit.php


si, ho risolto in questo modo... - crack001 - 27/03/12 20:45


Il mio blog: https://piero.dev
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 13:51
Domenica, 25/03/2012
secondo me dipende dall'hosting, se sei su un hosting condiviso è molto probabile che ti impediscano di eseguire bash che contengono istruzioni che necessitano di privilegi elevati :)

è una vrs su keyweb, quindi essendo virtualizzato credo che lo spazio sia condiviso, ma non credo che ci sia questa limitazione visto che dentro faccio ciò che mi pare no? a questo punto se levo lo script bash ma eseguo direttamente il comando di youtube-dl dovrebbe andare, invece fa sempre la stess - crack001 - 25/03/12 14:39
PM
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 14:43
Domenica, 25/03/2012
Rifarti lo script in php?
probabile che l'hosting non permetta l'uso di shell_exec o exec per sicurezza come dice Hedo

se non supportava shell_exec o exec le singole funzioni non dovrebbero funzionare con ls, pwd o cd ... non credo sia quello il problema, io penso più che visto che lo script in bash ci mette 2 o 3 minuti per scaricare e convertire, credo che sia più un problema di tempistica può essere? - crack001 - 25/03/12 14:47
prova con uno sleep allora - Mte90 - 25/03/12 22:31
era capitato pure a me: in locale uno script impiegava almeno un minuto a elaborare dei dati e veniva troncato perchè interpretato come loop (penso). Alla fine ho risolto modificando il file di configurazione di php (o forse di apache) cosa che però non puoi fare senza i privilegi di root. - nick0 - 26/03/12 13:56
PM