我遇到了一个重大问题,我无法找到解决方案。我目前有一个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()函数,那我该怎么办呢?
答案 0 :(得分:0)
<强>问题强>
正如Robbie Averill提到的那样,很可能是您有权限问题,您可以通过向用户运行Web服务器添加其他权限来解决此问题。但是,我认为将php与python混合使用并不是一种好方法,如果您无法将SECpull.py
重新编写为php,那么最好在{{{{}}中执行所有操作3}}。
我建议您使用python。
<强>示例强>
# 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/