2015-09-19 3 views
0

Я только что сделал сервер (только для localhost) в Python, чтобы выполнить CGI для выполнения и попробовать мои скрипты Python. Это код файла, который выполняет сервер:Как настроить индексный файл на CGI-сервере?

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

import BaseHTTPServer 
import CGIHTTPServer 
import cgitb 
cgitb.enable() ## This line enables CGI error reporting 

server = BaseHTTPServer.HTTPServer 
handler = CGIHTTPServer.CGIHTTPRequestHandler 
server_address = ("", 8000) 
handler.cgi_directories = ["/"] 

httpd = server(server_address, handler) 
httpd.serve_forever() 

Когда я получить доступ к какой-то скрипт на сервере (http://127.0.0.1:8000/index.py) не существует никаких проблем, но когда я получить доступ к серверу (http://127.0.0.1:8000/) он показывает:

Error response 

Error code 403. 

Message: CGI script is not executable ('//'). 

Error code explanation: 403 = Request forbidden -- authorization will not help. 

Это как если индексные файлы не заданы в виде файла по умолчанию для доступа, когда доступ к папке вместо конкретного файла ...

Я хотел бы быть в состоянии получить доступ к http://127.0.0.1/index.py когда доступ http://127.0.0.1/. Спасибо за все.

ответ

0

Встроенный HTTP-сервер Python является чрезвычайно простым, поэтому он не включает такую ​​функцию. Однако вы можете реализовать его самостоятельно, подклассифицируя CGIHTTPRequestHandler, возможно, заменяя функцию is_cgi.

0

Если вы используете handler.cgi_directories = ["/cgi"], вы можете поместить файл index.html в «/». И, конечно, если вы хотите, чтобы cgi script index.py по умолчанию, вы можете использовать index.html для пересылки ...

Смежные вопросы