small python cgi webserver

ArdPy ardsrk at gmail.com
Sat Nov 4 07:31:29 EST 2006


Fabian Braennstroem wrote:
> Hi,
>
> * ArdPy <ardsrk at gmail.com> wrote:
> >
> > Fabian Braennstroem wrote:
> >> Hi,
> >>
> >> I am looking for a small python script, which starts a small
> >> web server with python cgi support on a linux machine.
> >>
> >> I tried:
> >>
> >>
> >>   #!/usr/bin/env python
> >>   import sys
> >>   from CGIHTTPServer import CGIHTTPRequestHandler
> >>   import BaseHTTPServer
> >>
> >>   class MyRequestHandler(CGIHTTPRequestHandler):
> >>       # In diesem Verzeichnis sollten die CGI-Programme stehen:
> >>       cgi_directories=["/home/fab/Desktop/cgi-bin"]
> >>
> >>
> >>   def run():
> >>       # 8000=Port-Nummer
> >>       #   --> http://localhost:8000/
> >>       # Fuer http://localhost/
> >>       #   Port-Nummer auf 80 setzen
> >>       httpd=BaseHTTPServer.HTTPServer(('', 8000), MyRequestHandler)
> >>       httpd.serve_forever()
> >>
> >>   if __name__=="__main__":
> >>       print "Starting Server"
> >>       run()
> >>
> >> but when I want to test a small python cgi test file:
> >>
> >>
> >>   #!/usr/bin/python
> >>   # -*- coding: UTF-8 -*-
> >>
> >>   # Debugging für CGI-Skripte 'einschalten'
> >>   import cgitb; cgitb.enable()
> >>
> >>   print "Content-Type: text/html;charset=utf-8\n"
> >>   print "Hello World!"
> >>
> >> I just get the text and not the html output. The file's mode
> >> is 755.
> >>
> >> Is there anything wrong with the webserver script or do I do
> >> something completely wrong? Maybe, you have a different
> >> webserver script?
> >>
> >> Greetings!
> >>  Fabian
> >
> > Probably the server is not executing your CGI script. If it is the
> > Apache web server that you are using then just ensure the following
> > settings in your /etc/httpd/conf/httpd.conf file is exactly like
> > following:
> >
> > <Directory "/var/www/cgi-bin">
> >     AllowOverride None
> >     Options ExecCGI
> >     Order allow,deny
> >     Allow from all
> > </Directory>
>
> Maybe, I understood something wrong, but I thought that the
> above 'webserver' script would replace apache in my case; at
> least I hoped!?
>
> Greetings!
>  Fabian

Oh yes...Your script is supposed to replace apache. I tried with your
script on my pc and its working just fine. However the problem still is
that the server is taking your file to be a plain file rather than a
CGI script. Looking at CGIHTTPServer.is_cgi method might prove helpful.




More information about the Python-list mailing list