Próbuję uruchomić skrypt w Pythonie z PHP za pomocą następującego polecenia:
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
Jednak PHP po prostu nie generuje żadnych danych wyjściowych. Raportowanie błędów jest ustawione na E_ALL, a display_errors jest włączone.
Oto, czego próbowałem:
- Kiedyś
python2
,/usr/bin/python2
apython2.7
zamiast/usr/bin/python2.7
- Użyłem również ścieżki względnej zamiast ścieżki bezwzględnej, która również niczego nie zmienia.
- Próbowałem za pomocą komendy
exec
,shell_exec
,system
.
Jeśli jednak biegnę
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
działa doskonale, ale shutdown now
nic nie robi.
PHP ma uprawnienia dostępu i wykonywania pliku.
EDYCJA: Dzięki Alejandro udało mi się naprawić problem. Jeśli masz ten sam problem, nie zapominaj, że twój serwer WWW prawdopodobnie / miejmy nadzieję nie działa jako root. Spróbuj zalogować się jako użytkownik serwera WWW lub użytkownik z podobnymi uprawnieniami i spróbuj samodzielnie uruchomić polecenia.