Ik probeer een Python-script vanuit PHP uit te voeren met het volgende commando:
exec("/usr/bin/python2.7 /srv/http/assets/py/switch .py arg1 arg2");
PHP produceert echter gewoon geen uitvoer. Foutrapportage is ingesteld op E_ALL en display_errors is ingeschakeld.
Dit is wat ik heb geprobeerd:
- Ik heb
python2
,/usr/bin/python2
enpython2.7
in plaats van/usr/bin/python2.7
- Ik heb ook een relatief pad in plaats van een absoluut pad dat ook niets veranderde.
- Ik heb geprobeerd de commando's
exec
,shell_exec
,system< te gebruiken /code>.
Als ik echter
if (exec("echo TEST") == "TEST") { echo "exec works !"; }
het werkt prima, terwijl nu afsluiten
niets doet.
PHP heeft de permissies om toegang te krijgen en uit te voeren het bestand.
EDIT: Dankzij Alejandro kon ik het probleem oplossen. Als je hetzelfde probleem hebt, vergeet dan niet dat je webserver waarschijnlijk/hopelijk niet als root draait. Probeer in te loggen als de gebruiker van uw webserver of een gebruiker met vergelijkbare machtigingen en probeer de opdrachten zelf uit te voeren.