8

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.

asked Apr 8, 2013 at 11:34
2
  • 2
    Is there no indent in your script in if clause or you just paste it like that? Commented Apr 8, 2013 at 11:42
  • python -m SimpleHTTPServer is "kind of" the idea to run a HTTP server in Python. Commented Apr 8, 2013 at 11:45

1 Answer 1

14

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

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!
"""
)
answered Apr 8, 2013 at 15:19
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks a lot, I have unsuccessfully tried \n\n and Python 2 syntax (Xampp and Python 3).

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.