disign.it | Debug di shell_exec | a digital sign for a best design!
A digital sign for a best design
Programmazione 69 visualizzazioni

Debug di shell_exec

23/09/2020

Fare il debug di uno script lanciato attraverso chiamata da un altro script talvolta è molto complicato non potendo visualizzare l'output di errore.
Praticamente, se ho una pagina che lancia uno script php la cui esecuzione richiede molto tempo (classicamente un pulsante che da il via ad un invio email massivo intervallato da pause tra un invio e il successivo) è prassi lanciare lo script attraverso shell_exec che esegue il comando da shell in modo che l'invio avvenga in background e non sia necessario attendere la fine dell'intero invio per visualizzare una pagina di risposta.
Se l'invio, o le altre operazioni previste dallo script, non vanno a buon fine la cosa migliore è visualizzare un output per analizzare l'ccaduto (meglio ancora attivando tutti i sistemi di visualizzazione errori previsti da php).

Esempio, questa è la chiamata nella nostra pagina:

shell_exec('php invia_mail.php > /dev/null &');

Se invia_mail.php si interrompe per qualche errore shell_exec ritorna null e quindi non abbiamo modo di debuggare.

Ma se modifichiamo temporaneamente:

$output = shell_exec('php invia_mail.php');

echo "<pre>" . $output . "</pre>";

al termine dell'esecuzione da shell abbiamo a video l'output che ci evidenzia tutte le problematiche!

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 


Questo sito è totalmente privo di pubblicità, se volete sostenere questa inziativa, potete scegliere di fare una piccola donazione libera:


© 2009 - 2020 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.