2015-05-21 2 views
0

Я пытаюсь вызвать скрипт python из php, который имеет правильное разрешение на выполнение, но скрипт содержит некоторые команды, для которых только корень имеет разрешение. Итак, как я могу убедиться, что эти команды работают правильно из webservice ???Выполнение Python из php с помощью exec()

Я следил за этой ссылкой: Running a Python script from PHP, но не мог понять, как это сделать. Если кто-то может объяснить, это будет большой помощью.

+0

возможно дубликат [Как запустить PHP Exec() как корень] (http://stackoverflow.com/questions/1598231/how-to-run-php-exec-as-root) – marijnz0r

+0

запустите 'man sudo' для получения дополнительной информации о том, как выполнять роль другого пользователя. –

+0

@EJTH Это мой код: http://stackoverflow.com/questions/30367282/executing-python-script-from-php/30367638#30367638 –

ответ

0

Я предоставлю вам обычное предупреждение о том, что PHP находится рядом с корнем. Я делаю это только потому, что вы упомянули, что это веб-сервис (публичный?).

Недавно я опубликовал проект, который позволяет PHP получать и взаимодействовать с реальной оболочкой Bash (в качестве пользователя: apache/www-data или root при необходимости). Получить его здесь: https://github.com/merlinthemagic/MTS

После загрузки вы бы просто использовать следующий код:

//Setting the second argument in getShell(): 
//true will return a shell with root 
//false will return a shell with the php execution user 
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true); 
$return1 = $shell->exeCmd('python /full/path/to/python_script.py'); 
Смежные вопросы