繁体   English   中英

如何通过使用WSGI来执行Python脚本来避免PHP exec()?

[英]How to avoid PHP exec() by using WSGI to execute a Python script?

现在我正在使用exec()从PHP启动Python脚本,因为我必须将一些动态变量从网站/ MySQL传递到命令行。 但是,我想提高此操作的速度和安全性,所以我想使用WSGI。 我认为可以将Python脚本嵌入到WSGI文件中,该文件将使用从PHP直接(或间接)传递的变量...但是我怎么能这样做呢? 我从未使用过WSGI,所以我甚至都不知道这是不是一个愚蠢的问题:)

首先,你能用Python或PHP做到这一切吗? 使用多种语言通常被视为反模式。 这并不是说这总是一个坏主意,但你应该首先质疑为什么,只有这样你才能确信这是一个好主意。

至于你想做什么的具体细节,有几个选择:

  1. 如果使用Apache,则可以使用virtual()函数通过Apache发出新请求。

    这假设您使用的是mod_php和mod_wsgi。 基本上,您要为要传递的变量构建查询字符串,并将其称为:

     virtual('path/to/python.py?'.$query); 
  2. 编写自己的PHP WSGI网关。

    基本上,将WSGI规范编码到库中,并在PHP中显式调用它。

  3. 坚持从exec()调用它(这可能是目前最好的选择)。

你需要考虑的是,语言之间的交叉包含固有的开销。 你永远不会克服它,这只是野兽的本性。 所以相反,我建议将整个请求保留在一个环境中,并在该环境中完整地处理它...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM