Sto cercando di eseguire uno script Python da PHP utilizzando il seguente comando:esecuzione di uno script Python da PHP
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
Tuttavia, PHP semplicemente non produce alcun output. La segnalazione degli errori è impostata su E_ALL e display_errors è attivo.
Ecco che cosa ho provato:
- ho usato
python2
,/usr/bin/python2
epython2.7
invece di/usr/bin/python2.7
- ho usato anche un percorso relativo al posto di un percorso assoluto che non ha modificato nulla.
- Ho provato a utilizzare i comandi
exec
,shell_exec
,system
.
Tuttavia, se corro
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
funziona perfettamente bene mentre shutdown now
non fa nulla.
PHP ha le autorizzazioni per accedere ed eseguire il file.
EDIT: Grazie ad Alejandro, sono stato in grado di risolvere il problema. Se hai lo stesso problema, non dimenticare che il tuo server web probabilmente/si spera non venga eseguito come root. Provare ad accedere come utente del server web o utente con autorizzazioni simili e provare a eseguire i comandi da soli.
Grazie, ha fatto il trucco! C'era un altro problema: l'utente Apache non era in grado di eseguire un comando nello script Python ma ero in grado di risolverlo usando sudo e aggiungendo un'eccezione per il mio script al file sudoers. Grazie ancora! :) –
Sto affrontando lo stesso problema dell'utente di apache, puoi guidarmi per favore? – Emma
ho usato la tua risposta, esegue lo script python bene ma non riesco a echeggiare i risultati non compaiono nella pagina web, puoi aiutarmi. –