Introduction to the Worlds Quickest Web Server Tutorial

This tutorial is a very short and a “need to know” step by step on setting up a web server on Ubuntu 16.04. The tutorial will not cover advanced features, it is meant purely as the Worlds Quickest Web Server Tutorial to getting a web server up and running. The end result will be a web server that delivers html pages, PHP pages and has the ability to run databases.

What it covers

  • Ubuntu Setup
  • Apache Web Server
  • MySQL/MariaDB Database
  • PHP – Scripting Language

This tutorial assumes you have done the needed setup on a server; hostnames, security and Firewalls etc. If you need help with that, consult another tutorial on this website or another website.

Lets get started!

First we need to make sure the system is up to date. Run the following command in the terminal.

sudo apt-get update

Install Apache Web Server

sudo apt-get install apache2

You will likely be asked about a password for the sudo user, this you would have setup during server setup of Ubuntu.

Test the installation by going to the following address on a computer in your local network or the computer itself.


If all works, you should get this web page!

Install MySQL

Firstly you need to install MySQL Server, the following command will do just that.

sudo apt-get install mysql-server

After the install, you will need to run the following command to doing the initial setup. Following through the install wizard and each page will guide you through the options.


Install PHP

PHP is required to interface between websites and the MySQL databases you will have. There are other languages too, but PHP is a widely used language for dynamic websites. The following command will install the PHP libraries and various support addons for MySQL and Apache.

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Since we have installed PHP, it is likely because you wish to serve PHP files as the primary web files to users. To ensure .php files load before .html files you need to alter the load order.

Typing in the following command to open the dir.conf file in nano (a Linux terminal text editor will do just this.

sudo nano /etc/apache2/mods-enabled/dir.conf

It will look like this:


<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.php index.xhtml index.htm </IfModule>

You can see that directly after the DirectoryIndex part of the file is listed index.html. We want index.php to be first so we need to move it accordingly. It should look like the following:


<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.xhtml index.htm </IfModule>

Save and close the file by hitting Ctrl-X. You will have to save by typing Y and then hit Enter to confirm the file save location.

Restarting the Services and Testing the Installation

You will need to restart Apache to make the changes take effect. Copy and paste the following command:

sudo systemctl restart apache2

Its a good idea to test the PHP works by making a small test file that prints out your PHP installation settings.

To do this run the following sets of commands.

sudo nano /var/www/html/info.php

In the blank file that opens write in the following text.




Save and close the file as before and then go to the following address in your favorite browser.


It should load the following page if all is correct.

Now you can see the above page, you will want to remove it from the server as it contains information that other people could use to hack your website/server.

Other Tutorials for Servers/Ubuntu

Now you have your server up and running, perhaps you want to do some other tasks with it. Follow below some other tutorials and guides to help you get what you want out of your server.

Setting up your own Email Server


Robert Mizen is a Producer, Tech Consultant and all things nerdy person. Interested in Games, Apps, Web, Green Tech, Astrophysics and Travel. This website is a outlet to express so i dont explode.


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.