How to Start a Simple HTTP Server From Any Folder on a Mac

Posted on Oct 23, 2014 (last modified May 7, 2021)

Here’s a simple command that will startup an HTTP server from any given folder on a Mac. Open Terminal, cd to change to the directory you wish to serve files from, and then execute the following command.

python -m SimpleHTTPServer 8000

This can be very handy for web development on a Mac; especially when using the Google Chrome web browser, which doesn’t allow you to run JavaScript from your filesystem. Even if you bypass Chrome’s restriction by starting it with the –allow-file-access-from-files parameter, there can be cases where a web server is still desired. For example, when using Cross-Origin Resource Sharing (CORS) for cross-domain Ajax, the browser needs to report its origin with an HTTP request. When served by the web server, Origin will report http://localhost:8000 rather than null or file://.

Python 3.x+ releases

If you’re a Mac Python user who has installed or updated to Python 3, then you’ll find the traditional command string from the prior Python versions does not work to initiate the web server in new Python 3.x+ releases. For Python 3.x+, use the following instead:

python -m http.server

OR (depending on how Python 3.x is installed and named):

python3 -m http.server