Próbuję uruchomić skrypt Pythona 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 i display_errors jest włączone.
Oto co próbowałem:
- Użyłem
python2
,/usr/bin/python2
ipython2.7
zamiast/usr/bin/python2.7
- Użyłem również ścieżka względna zamiast ścieżki bezwzględnej, która też niczego nie zmieniła.
- Próbowałem użyć poleceń
exec
,shell_exec
,system
.
Jednak jeśli uruchomię
if (exec("echo TEST") == "TEST") { echo "exec działa !"; }
działa doskonale, podczas gdy zamknij teraz
nic nie robi.
PHP ma uprawnienia dostępu i wykonywania plik.
EDYCJA: Dzięki Alejandro udało mi się naprawić problem. Jeśli masz ten sam problem, nie zapominaj, że Twój serwer 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.