не могу выполнить скрипт Python из PHP

0

вот мой код в control.php: -

<?php
$output = shell_exec("/var/www/script.py");
?>

почему я не могу запустить команду shell_exec(), когда я запускаю php-скрипт..? он должен вызвать script.py и выполнить скрипт py, но при запуске скрипта control.php.

обратите внимание, что я пытался запустить обычную программу, используя php, где я пытался открыть gedit, используя следующую команду:

 <?php exec('gedit');?>

gedit не выполняется.

кто-нибудь может мне помочь?

Теги:
exec
shell-exec

3 ответа

0
Лучший ответ

причина в том, что у php нет разрешения на запись/чтение скрипта py на рабочем столе.. так что просто измените каталог py на тот же каталог, что и файл php, тогда eveything работает плавно.

1

Вероятно, вам нужно явно указать python в shell_exec():

$output = shell_exec("/usr/bin/python /var/www/script.py")

или

$output = shell_exec("python /var/www/script.py")

и вам нужно убедиться, что ваш script.py имеет разрешение лучше, чем "-rwxrwxr-x" поскольку ваш php, вероятно, выполняется другим пользователем.

  • 0
    оба не могут быть запущены .. мне может понадобиться разрешение .. но как получить разрешение и как узнать, какой пользователь выполняет php? я запускаю код с помощью Google Chrome в Linux ..
  • 0
    @ShahAbdHafiz Вы вводите ls -ltr /var/www/script.py а затем первый столбец, который вы получаете, это его разрешение.
Показать ещё 1 комментарий
1

Можете ли вы запустить "/var/www/script.py" в BASH? если НЕ, то проверьте скрипт, убедитесь, что он содержит следующую строку:

#!/usr/bin/env python

затем chmod +x script.py, чтобы убедиться, что он выполним.

  • 0
    я могу запустить "/var/www/script.py" в Bash очень хорошо =), но не из самого php ..
  • 0
    Вы отключили Селинукс? /var/www/script.py обычно является папкой по умолчанию для apache, вы можете запустить «getfacl», чтобы проверить, имеет ли интерпретатор PHP достаточный доступ к этому сценарию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню