Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python cgi脚本在apache2.4.6中总是被禁止使用403_Python_Apache_Ubuntu_Curl - Fatal编程技术网

python cgi脚本在apache2.4.6中总是被禁止使用403

python cgi脚本在apache2.4.6中总是被禁止使用403,python,apache,ubuntu,curl,Python,Apache,Ubuntu,Curl,工作环境:Ubuntu13.10Saucy,apache2.4.6 我在/usr/lib/cgi-bin中有一个python脚本,我使用它作为将内部url转换为外部url的代理。它在Apache2.2上运行得很好,但总是出现403禁止的错误 /etc/apache2/site-enabled/mirror.conf ScriptAlias /mirror /usr/lib/cgi-bin/mirror.py /usr/lib/cgi-bin/mirror.py 我应该遵循apache新版本

工作环境:Ubuntu13.10Saucy,apache2.4.6

我在/usr/lib/cgi-bin中有一个python脚本,我使用它作为将内部url转换为外部url的代理。它在Apache2.2上运行得很好,但总是出现403禁止的错误

/etc/apache2/site-enabled/mirror.conf

ScriptAlias /mirror /usr/lib/cgi-bin/mirror.py

/usr/lib/cgi-bin/mirror.py

我应该遵循apache新版本的任何提示吗?

apach2 2.4.6不要将cgid.conf和cgid.load作为默认值放在/etc/apache2/mods中。启用mods到mods的软链接后,问题将得到解决


#!/usr/bin/python

import os
import sys
import pycurl

username = "username"
password = "password"
base = "https://mirror.xxxxxxxx.com/xxxxxxxx"

if os.environ.has_key(‘PATH_INFO’):
    path = os.environ[‘PATH_INFO’]
else:
    path = ‘/’

dst = base + path

def write(data):
    sys.stdout.write(data)

def header(data):
    for line in data.splitlines():
        if line.startswith('HTTP/'):
            ret = line.split()[1]
            sys.stdout.write('Status: ' + ret + '\r\n')
        elif line.startswith('Location:'):
            line = line.replace('https://mirror.xxxxxxxx.com/xxxxxxxx', 'http://mirror.internal/mirror')
            sys.stdout.write(line + '\r\n')
        else:
            sys.stdout.write(line + '\r\n')

curl = pycurl.Curl()

curl.setopt(curl.URL, dst)

curl.setopt(curl.HEADERFUNCTION, header)
curl.setopt(curl.USERPWD, '%s:%s' % (username, password))
curl.setopt(curl.WRITEFUNCTION, write)

curl.perform()
curl.close()