run python script as cgi apache server
Question: I am trying to make a python script run as cgi, using an Apache server. My
script looks something like this:

    
    
      #!/usr/bin/python
      import cgi
      if __name__ == "__main__":
    
      print("Content-type: text/html")
      print("<HTML>")
      print("<HEAD>")
    

I have done the necessary configurations in httpd.conf(in my opinion):

    
    
      <Directory "/opt/lampp/htdocs/xampp/python">
      Options +ExecCGI
      AddHandler cgi-script .cgi .py
      Order allow,deny
      Allow from all
      </Directory>
    

I have set the execution permission for the script with chmod

However, when I try to access the script via localhost i get an Error 500:End
of script output before headers:script.py What could be the problem? The
script is created in an Unix like environment so I think the problem of clrf
vs lf doesn't stand. Thanks a lot.


Answer: I think you are missing a print statement after

    
    
    print("Content-type: text/html")
    

The output of a CGI script should consist of two sections, separated by a
blank line. The first section contains a number of headers, telling the client
what kind of data is following.

The second section is usually HTML, which allows the client software to
display nicely formatted text with header, in-line images, etc.

It may look like

    
    
    #!/usr/bin/env python
    
    print "Content-Type: text/html"
    print
    print """
        <TITLE>CGI script ! Python</TITLE>
        <H1>This is my first CGI script</H1>
        Hello, world!
    """
    

For more details visit [python-cgi](http://docs.python.org/2/library/cgi.html)

For python3

    
    
    #!/usr/bin/env python3
    
    print("Content-Type: text/html")
    print()
    print ("""
        <TITLE>CGI script ! Python</TITLE>
        <H1>This is my first CGI script</H1>
        Hello, world!
    """
    )
    

