Sto cercando di eseguire uno script Python da PHP utilizzando il seguente comando:
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 cosa ho provato:
- Ho usato
python2
,/usr/bin/python2
epython2.7
invece di/usr/bin/python2.7
- Ho anche usato un percorso relativo invece di un percorso assoluto che non ha cambiato nulla.
- Ho provato utilizzando 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 dispone delle 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 funziona come root. Prova ad accedere come utente del tuo server web o come utente con autorizzazioni simili e prova a eseguire i comandi da solo.