This article explains how to set up a simple local testing server on your machine, and the basics of how to use it.
Prerequisites: | You need to first know how the Internet works, and what a Web server is. |
---|---|
Objective: | You will learn how to set up a local testing server. |
Local files vs. remote files
Throughout most of the learning area, we tell you to just open your examples directly in a browser — this can be done by double clicking the HTML file, dragging and dropping it into the browser window, or choosing File > Open... and navigating to the HTML file. There are many ways to achieve this.
If the web address path starts with file://
followed by the path to the file on your local hard drive, a local file is being used. In contrast, if you view one of our examples hosted on GitHub (or an example on some other remote server), the web address will start with http://
or https://
, to show that the file has been received via HTTP.
The problem with testing local files
Some examples won't run if you open them as local files. This can be due to a variety of reasons, the most likely being:
MacOS Server brings even more power to your business, home office, or school. Designed to work with macOS and iOS, macOS Server makes it easy to configure Mac and iOS devices. It’s also remarkably simple to install, set up, and manage. Add macOS Server to your Mac from the Mac. Testing websites on the local network with fixed domain names instead of changing IP addresses - NAMO is ideal for simplified testing on mobile devices. Comfortable hosting of server based applications in. The Testing Server we're going to use for this course is called MAMP. MAMP, as it says on my screen, is My Apache, MySQL, and PHP. So we get an Apache Server, MySQL, and PHP all in one download. This will make the transition from testing to live much smoother. Often, webhosts will be running slightly older versions of server software. Having a local testing server makes it much easier to create clean, well-tested code. And we all want that, right? Thanks to this article, you can now get started with your very own local testing server. MacOS Server brings even more power to your business, home office, or school. Designed to work with macOS and iOS, macOS Server makes it easy to configure Mac and iOS devices. It’s also remarkably simple to install, set up, and manage. Add macOS Server to your Mac from the Mac App Store for just $19.99.
- They feature asynchronous requests. Some browsers (including Chrome) will not run async requests (see Fetching data from the server) if you just run the example from a local file. This is because of security restrictions (for more on web security, read Website security).
- They feature a server-side language. Server-side languages (such as PHP or Python) require a special server to interpret the code and deliver the results.
Running a simple local HTTP server
To get around the problem of async requests, we need to test such examples by running them through a local web server. One of the easiest ways to do this for our purposes is to use Python's SimpleHTTPServer
(or http.server
, depending on the version of Python installed.)
To do this:
Testing Server For Mac Os
Install Python. If you are using Linux or macOS, it should be available on your system already. If you are a Windows user, you can get an installer from the Python homepage and follow the instructions to install it:
- Go to python.org
- Under the Download section, click the link for Python '3.xxx'.
- At the bottom of the page, choose the Windows x86 executable installer and download it.
- When it has downloaded, run it.
- On the first installer page, make sure you check the 'Add Python 3.xxx to PATH' checkbox.
- Click Install, then click Close when the installation has finished.
Open your command prompt (Windows)/ terminal (macOS/ Linux). To check Python is installed, enter the following command:
This should return a version number. If this is OK, navigate to the directory that your example is inside, using the
cd
command.Enter the command to start up the server in that directory:
By default, this will run the contents of the directory on a local web server, on port 8000. You can go to this server by going to the URL
localhost:8000
in your web browser. Here you'll see the contents of the directory listed — click the HTML file you want to run.
Note: If you already have something running on port 8000, you can choose another port by running the server command followed by an alternative port number, e.g. python3 -m http.server 7800
(Python 3.x) or python -m SimpleHTTPServer 7800
(Python 2.x). You can then access your content at localhost:7800
.
Running server-side languages locally
Python's SimpleHTTPServer (python 2.0) http.server (python 3.0)
module is useful, but it doesn't know how to run code written in languages such as Python, PHP or JavaScript. To handle that you'll need something more — exactly what you'll need depends on the server-side language you are trying to run. Here are a few examples:
Mac Os Servers
- To run Python server-side code, you'll need to use a Python web framework. You can find out how to use the Django framework by reading Django Web Framework (Python). Flask is also a good (slightly less heavyweight) alternative to Django. To run this you'll need to install Python/PIP, then install Flask using
pip3 install flask
. At this point you should be able to run the Python Flask examples using for examplepython3 python-example.py
, then navigating tolocalhost:5000
in your browser. - To run Node.js (JavaScript) server-side code, you'll need to use raw node or a framework built on top of it. Express is a good choice — see Express Web Framework (Node.js/JavaScript).
- To run PHP server-side code, launch PHP's built-in development server: