Bonjour,

Voila je débute sur l'utilisation de SimpleHTTPServer ainsi j'ai voulu évolué mon server initiale dans le but de lui faire comprendre le CGI j'ai fais donc ce script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
import SocketServer
import CGIHTTPServer
 
class HttpRq (CGIHTTPServer.CGIHTTPRequestHandler) :
 
        def do_GET(self) :
                if self.path == "/admin/" :
                        self.wfile.write("Admin only\n\n")
                        self.wfile.write(self.headers)
                else :
                        CGIHTTPServer.CGIHTTPRequestHandler.do_GET(self)
 
httpserv = SocketServer.TCPServer(("",10000),HttpRq)
 
httpserv.serve_forever()
Je le lance sans aucun soucis sauf que lorsque je tente de lire depuis le naviguateur dans le dossier htbin je reçois une erreur 403 (normal jusqu'ici) mais lorsque je tente d'executer un script très simple tel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
# Starting First CGI script
 
print "Content-type: text/html\n\n";
print "<HTML>"
print "<HEAD>"
print "<TITLE> DAT NAME </TITLE>"
print "</HEAD>"
print "<BODY>"
print "<H1> HI THERE ! </H1>"
print "</BODY>"
print "</HTML>"
Je reçois aucune erreur mais pas de script non plus juste comme si la page était trouvé mais jamais lancé . Je reçois comme erreur dans le server :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Exception happened during processing of request from ('192.168.1.13', 55120)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "./servcgi.py", line 12, in do_GET
    CGIHTTPServer.CGIHTTPRequestHandler.do_GET(self)
  File "/usr/lib/python2.7/SimpleHTTPServer.py", line 44, in do_GET
    f = self.send_head()
  File "/usr/lib/python2.7/CGIHTTPServer.py", line 69, in send_head
    return self.run_cgi()
  File "/usr/lib/python2.7/CGIHTTPServer.py", line 162, in run_cgi
    env['SERVER_NAME'] = self.server.server_name
AttributeError: TCPServer instance has no attribute 'server_name'
Je ne vois franchement pas le problème si quelqu'un aurait la solution.

Merci.