Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to host python cgi script with `python -m SimpleHTTPServer 8000` or `python -m CGIHTTPServer 8000`?

Tags:

When I run python -m SimpleHTTPServer 8000 or python -m CGIHTTPServer 8000 in my shell I am hosting the content of my current directory to the internet.

I would like to make the following cgi_script.py work correctly using the above command in the command line when I browse to 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python print "Content-Type: text/html" print print """\ <html> <body> <h2>Hello World!</h2> </body> </html> """ 

But this script is displayed literally and not only the "Hello World!" part. Btw I changed the file permissions to 755 for cgi_script.py as well as the folder I am hosting it from.

like image 270
Bentley4 Avatar asked May 01 '12 10:05

Bentley4


People also ask

Can you make a web server with Python?

A webserver in Python can be setup in two ways. Python supports a webserver out of the box. You can start a web server with a one liner. But you can also create a custom web server which has unique functionality.

Is Python HTTP server good for production?

Python docs claim, that "http. server is not recommended for production. It only implements basic security checks."

How do I download an HTTP server from Python?

Downloading Your Files Simply browse to http://IP_ADDRESS:8000, where “IP_ADDRESS” is the IP address of the sending computer, and click on the desired files to download them. Alternatively, you can use Wget or cURL to fetch your files. You should already have one or both of them installed.


2 Answers

Try with python -m CGIHTTPServer 8000.

Note that you have to move the script to a cgi-bin or htbin directory in order to be runnable.

like image 120
rodrigo Avatar answered Oct 13 '22 20:10

rodrigo


SO doesn't allow me to comment so I'm adding this as a separate answer, addition to rodrigo's.

You can use another parameter cgi_directories which defaults to ['/cgi-bin', '/htbin']. More info here

like image 33
spawnedc Avatar answered Oct 13 '22 19:10

spawnedc