目前我正在使用exec()从PHP启动一个Python脚本,因为我必须将一些动态变量从网站/MySQL传递到命令行。但是,我想改进这个操作的速度和安全性,所以我考虑使用WSGI。我在想,是否可能将Python脚本嵌入到WSGI文件中,该文件将直接(或间接)使用从PHP传递的变量...但是我该如何做呢?我从未使用过WSGI,所以我甚至不知道这是否是一个愚蠢的问题 :)
目前我正在使用exec()从PHP启动一个Python脚本,因为我必须将一些动态变量从网站/MySQL传递到命令行。但是,我想改进这个操作的速度和安全性,所以我考虑使用WSGI。我在想,是否可能将Python脚本嵌入到WSGI文件中,该文件将直接(或间接)使用从PHP传递的变量...但是我该如何做呢?我从未使用过WSGI,所以我甚至不知道这是否是一个愚蠢的问题 :)
首先,你能用Python或PHP完成所有工作吗?通常使用多种语言被认为是反模式。这并不意味着它总是一个坏主意,但你应该先问自己为什么,只有当你确信这是一个好主意时才继续。
关于你想要实现的具体内容,有几个选择:
如果使用Apache,您可以使用virtual()
函数通过Apache发起新请求。
这是假设您使用mod_php和mod_wsgi。基本上,您需要为要传递的变量构建查询字符串,并像下面这样调用它:
virtual('path/to/python.py?'.$query);
编写自己的PHP WSGI网关。
基本上,将WSGI规范编码到库中,并在PHP内显式调用它。
坚持从exec()
调用它(现在可能是最好的选择)。