Python:模拟“的功能”;cgi fcgi“;程序

Python:模拟“的功能”;cgi fcgi“;程序,python,cgi,fastcgi,Python,Cgi,Fastcgi,我需要定期从PHP-FPM中提取状态信息。目前我只分析以下脚本的输出: 导出脚本\u NAME=/status 导出脚本\u文件名=/status 导出请求\u方法=获取 /usr/bin/cgi fcgi-bind-connect/tmp/php5-fpm.sock 但是,如果可能的话,我希望我的Python程序能够真正独立完成cgi fcgi的工作 我尝试搜索Python如何调用CGI/FastCGI;不幸的是,我找到的所有文档总是谈论如何通过CGI/FastCGI调用Python程序。也

我需要定期从PHP-FPM中提取状态信息。目前我只分析以下脚本的输出:

导出脚本\u NAME=/status
导出脚本\u文件名=/status
导出请求\u方法=获取
/usr/bin/cgi fcgi-bind-connect/tmp/php5-fpm.sock
但是,如果可能的话,我希望我的Python程序能够真正独立完成
cgi fcgi
的工作

我尝试搜索Python如何调用CGI/FastCGI;不幸的是,我找到的所有文档总是谈论如何通过CGI/FastCGI调用Python程序。也就是说,“服务器”端的Python

那么,如何在Python上实现CGI/FastCGI“客户机”


(请注意,cgi fcgi允许直接访问cgi/FastCGI侦听器;这正是我所寻找的)

我投票认为是的副本

尽管如此,我还是想记录我的解决方案:

  • 我使用
    flup
    中修改的
    fcgi_应用程序
    模块(即flup.client.fcgi_应用程序)
  • 像链接问题中那样进行修改,但我使用了来自的“预制”解决方案。它很简单,而且在标准模块之外似乎没有任何依赖项
  • 调用如下所示:

    # "flup_fcgi_client.py" is the modified flup.client.fcgi_app module
    # located in the same directory
    import flup_fcgi_client as fcgi_client
    fcgi = fcgi_client.FCGIApp(connect='/path/to/socket')
    script = '/status'
    query = 'json'
    env = {
        'SCRIPT_NAME': script,
        'SCRIPT_FILENAME': script,
        'QUERY_STRING': query,
        'REQUEST_METHOD': 'GET'}
    
    code, headers, out, err = fcgi(env)
    
    # Handle return values here...
    
  • 可能重复的