Я намагаюся запустити скрипт Python від PHP за допомогою наступної команди:
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
Однак PHP просто не дає жодного результату. Повідомлення про помилки встановлено як E_ALL, а display_errors увімкнено.
Ось що я спробував:
- Я використовував
python2
,/usr/bin/python2
аpython2.7
замість/usr/bin/python2.7
- Я також використав відносний шлях замість абсолютного шляху, який теж нічого не змінив.
- Я спробував з допомогою команд
exec
,shell_exec
,system
.
Однак якщо я біжу
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
він працює чудово, хоча shutdown now
нічого не робить.
PHP має дозволи на доступ та виконання файлу.
EDIT: Завдяки Алехандро мені вдалося виправити проблему. Якщо у вас є така ж проблема, не забувайте, що ваш веб-сервер, ймовірно, / сподіваємось, не працює як root. Спробуйте увійти як користувач вашого веб-сервера або користувач із подібними дозволами та спробуйте запустити команди самостійно.