如何从PHP webhook调用shell_exec()?

时间:2016-06-01 23:35:21

标签: php python exec webhooks cgi-bin

我遇到了一个重大问题,我无法找到解决方案。我目前有一个PHP脚本,它接受webhook(HTTP POST)作为触发器。基于POST中包含的变量,应该运行exec('python script')并返回一些变量。当我从命令行运行它工作正常时它工作正常,但是当我尝试从任何类型的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);

如果在HTTP脚本触发的PHP脚本中无法使用exec()函数,那我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

<强>问题

正如Robbie Averill提到的那样,很可能是您有权限问题,您可以通过向用户运行Web服务器添加其他权限来解决此问题。但是,我认为将混合使用并不是一种好方法,如果您无法将SECpull.py重新编写为,那么最好在{{{{}}中执行所有操作3}}。

我建议您使用

<强>示例

# 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/