вот мой код в control.php: -
<?php
$output = shell_exec("/var/www/script.py");
?>
почему я не могу запустить команду shell_exec(), когда я запускаю php-скрипт..? он должен вызвать script.py и выполнить скрипт py, но при запуске скрипта control.php.
обратите внимание, что я пытался запустить обычную программу, используя php, где я пытался открыть gedit, используя следующую команду:
<?php exec('gedit');?>
gedit не выполняется.
кто-нибудь может мне помочь?
причина в том, что у php нет разрешения на запись/чтение скрипта py на рабочем столе.. так что просто измените каталог py на тот же каталог, что и файл php, тогда eveything работает плавно.
Вероятно, вам нужно явно указать 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, вероятно, выполняется другим пользователем.
Можете ли вы запустить "/var/www/script.py" в BASH? если НЕ, то проверьте скрипт, убедитесь, что он содержит следующую строку:
#!/usr/bin/env python
затем chmod +x script.py, чтобы убедиться, что он выполним.
ls -ltr /var/www/script.py
а затем первый столбец, который вы получаете, это его разрешение.