PHP和Python接口

时间:2010-11-29 15:16:50

标签: php python

我有一个Python应用程序(在机器M1上运行的命令行工具),它有输入I1和输出O2。此外,我有一个PHP应用程序(在机器M2上运行的网站),它使用输入I1为Python应用程序提供信息,并期望读取输出O1。我的问题是解决这个问题的最佳方法是什么? (环境是GNU / Linux)

我正在考虑使用ssh解决方案; PHP脚本通过ssh执行命令:“ssh M2:./ my_script.py arguments output_file”并传输输出文件“scp M2:output_file”。从M2到M1。但是,我不认为这个解决方案很优雅。我在考虑Web服务(Python应用程序应该公开Web服务),但我不确定这个解决方案的复杂性或它是否有效。

谢谢,

4 个答案:

答案 0 :(得分:1)

与上面的其他人一样,我是通过实施Web服务而不是摆弄SSH来实现的。你是对的,SSH解决方案不够优雅。

在以下方面构建Python Web应用程序的明显答案:Django。如果您想使用更轻松的东西,请查看像Flask这样的微框架。

对于数据交换,JSON是您最好的选择 - 现在支持Python和PHP。

答案 1 :(得分:0)

我认为你应该实现一个Web服务。我不知道如何用python做这件事,但我想它会相当容易。

答案 2 :(得分:0)

使用twisted(或类似的东西)在M1上设置一个小型服务器,在使用xml请求命中时运行该命令。然后将输出返回到php端。因此,php只是将一个带有input1的请求发送给M1,而M1返回一个带有O1的响应(或者O2?你的缩写是令人困惑的:P)。它非常KISS,应该可以很好地扩展。我不知道php方面是如何工作的,但是扭曲的东西已经有了很好的记录。请查看this链接,了解如何设置简单的扭曲服务器。

答案 3 :(得分:0)

如果O1 = O2,您可以通过文件套接字与二进制协议进行通信。与HessianThrift一样。鉴于您在* nix服务器上运行应用程序,它应该非常快。

相关问题