Python3.x 的 CGIHTTPServer

在Python2.x版本里,/usr/bin/lib/python2.x/ 目录下会有 BaseHTTPServer.py, SimpleHTTPServer.py,CGIHTTPServer.py
但是在Python3.x里,就没有上面的3个文件,而是合闭到了 /usr/bin/python3.x/http/server.py文件里了。

Python3 使用

  • Python CGI脚本需要放在’/cgi-bin’, ‘/htbin’ 目录,并且脚本需要nobody 访问权限

    1
    mkdir -p test/cgi-bin
  • 在cgi-bin 目录的test.py 中写入

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import cgi
    c = cgi.FieldStorage()

    header = 'Content-Type: text/html\n'
    html = c
    f = open('log.log','w')
    f.write(str(html))
    f.close()
    print(header)
    print(html)
  • 执行

    1
    python -m http.server --cgi 2000
  • 访问出现异常 os.execve Permission denied

    1
    chmod +x test.py
  • 如果还不能解决,复制脚本到nobody 能访问的目录,例如/tmp