现在我正在使用exec()从PHP启动Python脚本,因为我必须将一些动态变量从网站/ MySQL传递到命令行。但是,我想提高此操作的速度和安全性,所以我想使用WSGI。我认为可以将Python脚本嵌入到WSGI文件中,该文件将使用从PHP直接(或间接)传递的变量...但是我怎么能这样做呢?我从未使用过WSGI,所以我甚至不知道这是不是一个愚蠢的问题:)
答案 0 :(得分:1)
首先,您可以在Python或PHP中完成所有操作吗?使用多种语言通常被视为反模式。这并不是说这总是一个坏主意,但你应该首先质疑为什么,只有这样你才能确信这是一个好主意。
就你想做什么的具体情况而言,有几个选择:
如果使用Apache,您可以使用virtual()
函数通过Apache发出新请求。
这假设您正在使用mod_php和mod_wsgi。基本上,您需要为要传递的变量构建查询字符串,并将其命名为:
virtual('path/to/python.py?'.$query);
编写自己的PHP WSGI网关。
基本上,将WSGI规范编码到库中,并在PHP中显式调用它。
坚持从exec()
调用它(这可能是目前最好的选择)。
你必须考虑的是,语言之间的交叉包含固有的开销。你永远不会克服它,这只是野兽的本性。所以相反,我建议将整个请求保留在一个环境中,并在该环境中完整地处理它......