How to start a basic web server on macOS or Linux

Table of contents

Introduction

If you are working on webpages or other web content, you may need a easy and quick way to start a basic web server. This guide will teach you a Python command to start a basic web server on your computer. As you follow these instructions, keep in mind that your computer’s files and folders likely will be different from the samples. If you already have a lot of experience with the terminal, check out the commands on the homepage for quick reference material.

Prerequisites

In order follow this guide, you will need:

  • Access to a Unix terminal on any macOS or Linux environment.
  • To know how to open a terminal window. If you are not sure, visit the instructions for macOS or Linux (coming soon).
  • To know how to navigate files and folders on a terminal. If you are not sure, follow this guide first to learn how.
  • Python3 installed on your computer. This comes installed by default on recent versions of macOS and many Linux distributions.

Start by finding the right folder

First, you need to navigate to the folder where your web pages or web content is saved. If you are not sure how to do this, you may want to read this guide first.

Let us say that your web content is in the folder /home/user/examples. We want to do three things:

  1. Make sure we are in the right working directory using pwd.
  2. Check if we have web content in the folder using ls.
  3. Check if the web content is in the right format, such as HTML, using cat.

Here is the combination of the steps:

Navigating and checking web content

In the above example, we use pwd to verify that /home/user/examples is our working directory. Then we use ls to list the contents of the working directory to make sure we have an HTML file in there. You can note the hello.html file.

Finally, we view the contents of hello.html using cat to make sure it is really HTML.

We are now ready to start our web server!

Start the basic Python web server

Since it is frequently installed on computers by default, we are going to use Python to run a basic web server.

We are going to use this command to start a web server: python3 -m http.server 8000

Let us explore what this command does:

  • python3 instructs the terminal to use Python 3 to do something.
  • -m http.server instructs Python to run a web server.
  • 8000 instructs Python to use 8000 as the port for the web server.

Let’s try running it:

Start Python web server

If you observe the above, the web server is now running on your computer.

Check your web content

Next, we can check if our web content is showing in a web browser. We can open a local URL to browse the content: http://localhost:8000

In our example above, this is what we observe in a web browser:

Directory listing in the web browser

In our example, we did not have a file called index.html so our web browser listed the available files. You can click on a specific file to open it in the browser. Let us click on the hello.html that we checked earlier:

Hello world page

We now observe the web page!

Stop the basic Python web server

When you are finished using the web server, you can stop it from the terminal. To do this, press Ctrl-C on your keyboard. This means pressing the Ctrl and C keys at the same time.

You will observe a result like this:

Stop Python web server

Conclusion

You have learned how to start a basic web server on your computer. This will help you with tasks like web development and Python programming. If you are interested in learning more or programming in Python, you can visit https://www.python.org.