【问题标题】:How to pass informations from mod_python to CGI scripts如何将信息从 mod_python 传递到 CGI 脚本
【发布时间】:2018-04-13 12:08:25
【问题描述】:

我将 mod_python 用于我自己的自定义身份验证机制,如下所示:

# apache/conf/conf.d/mod_python.conf

<Directory some/path>
    PythonAccessHandler myhandler::myhandler
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

-

# myhandler.py

from mod_python import apache

def myhandler(req):
    if check(req):
        return apache.DECLINED
    else:
        return apache.HTTP_UNAUTHORIZED

def check(req):
    from random import random
    return random() >= 0.5

并且想要在 myhandler 拒绝时执行一些 CGI 脚本。

#!/bin/bash
# test.cgi

echo Content-type: text/plain
echo
echo "Hello!"

此配置工作正常,但除此之外,我想将几​​个信息从 mod_python 传递到 CGI 脚本,就像这样:

# myhandler.py

def myhandler(req):   
    if check(req):
        import sys
        req.subprocess_env['python_version'] = repr(sys.version_info)
        return apache.DECLINED
    else:
        return apache.HTTP_UNAUTHORIZED

-

#!/bin/bash
# test2.cgi

echo Content-type: text/plain
echo
echo "python version = $python_version"

但是,此配置不起作用。传递给 req.subprocess_env 的值在 CGI 脚本中被丢弃。

有没有办法将信息从 mod_python 传递到 CGI 脚本?

任何帮助将不胜感激。

【问题讨论】:

    标签: python cgi mod-python


    【解决方案1】:

    我建议的方式在 apache 2.4 中按预期工作,但在 2.2 中没有

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2018-06-16
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多