Как я могу вызвать shell_exec () из PHP webhook?

У меня серьезная проблема, и я не могу найти решение. В настоящее время у меня есть скрипт PHP, который принимает веб-крючок (HTTP POST) в качестве триггера. Исходя из переменных, содержащихся в POST, предполагается, что exec («скрипт python») будет возвращать некоторые переменные. Он работает нормально, когда я запускаю его из командной строки, он работает нормально, но когда я пытаюсь запустить скрипт из любого типа HTTP-запроса, функция exec () не запускается. Вот часть кода, на которую влияют:

$command = shell_exec('python C:\\xampp\\cgi-bin\\SECpull.py');

$company_dump = print_r($command, TRUE);
$fp = fopen('retvals.txt', 'w');
fwrite($fp, $company_dump);
fclose($fp);

Если невозможно иметь функцию exec () в скрипте PHP, которая запускается HTTP POST, то как мне поступить?

1

Решение

проблема

Как Робби Аверилл Как уже упоминалось, скорее всего, у вас есть проблема с разрешениями, и вы можете исправить ее, добавив дополнительные разрешения пользователю, который используется для запуска веб-сервера. Тем не менее, я думаю, что это не хороший стиль, чтобы смешивать с , и если вы не можете переписать SECpull.py в , тогда лучше все делай в .

Я предлагаю вам использовать колба для этого.

Образец

# server.py
from flask import Flask
app = Flask(__name__)

# Setup custom route here
@app.route("/")
def index():
# Add SECpull.py logic here.
return "Welcome To Python Server!"
if __name__ == "__main__":
app.run()

Настроить

$ pip install Flask
$ python server.py

* Running on http://localhost:5000/
0

Другие решения

Других решений пока нет …