How to set the DocumentRoot while using python's HTTPServer?

chutsu picture chutsu · Jul 10, 2012 · Viewed 11.1k times · Source

I have the following code as my python server:

#!/usr/bin/python3
from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8080
host_name = "localhost"
httpd = HTTPServer((host_name, port), CGIHTTPRequestHandler)
print("server started, to quit press <ctrl-c>")
httpd.serve_forever()

How do you set the DocumentRoot to which the server is serving the pages from.

Answer

Amber picture Amber · Jul 10, 2012

The built-in CGIHTTPRequestHandler class serves from the current working directory, which is normally the directory from which you invoked Python.

This class is used to serve either files or output of CGI scripts from the current directory and below.

You can use os.chdir() to change the current working directory.