# Installing Apache on Ubuntu 22.04

1. # **Installing Apache**
    

To install Apache, install the latest meta-package apache2 by running

```apache
sudo apt update
sudo apt install apache2
```

After letting the command run, all required packages are installed and we can test it out by typing in our IP address for the web server.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1721469603649/f84e3aae-596c-4b8a-aeb1-33ffbc54c94e.png align="center")

2. # Creating Your Own Website
    

By default, Apache comes with a basic site (the one that we saw in the previous step) enabled. We can modify its content in **/var/www/html** or settings by editing its Virtual Host file found in **/etc/apache2/sites-enabled/000-default.conf**.

We can modify how Apache handles incoming requests and have multiple sites running on the same server by editing its Virtual Hosts file.

Today, we’re going to leave the default Apache virtual host configuration pointing to **www.example.com** and set up our own at **demo.example.com.**

So let’s start by creating a folder for our new website in **/var/www/** by running

```apache
sudo mkdir /var/www/demo/
```

We have it named **demo** here but any name will work, as long as we point to it in the virtual hosts configuration file later.

Now that we have a directory created for our site, lets have an HTML file in it. Let’s go into our newly created directory and create one by typing

```apache
cd /var/www/demo/
nano index.html
```

Paste the following code in the index.html file:

```apache
<html>
<head>
<title> Ubuntu rocks! </title>
</head>
<body>
 <p> I'm running this website on an Ubuntu Server server!
</body>
</html>
```

Now let’s create a VirtualHost file so it’ll show up when we type in demoi.example.com.

# **3\. Setting up the VirtualHost Configuration File :**

We start this step by going into the configuration files directory:

```apache
cd /etc/apache2/sites-available/
```

Since Apache came with a default VirtualHost file, let’s use that as a base. (demo.conf is used here to match our subdomain name):

```apache
sudo cp 000-default.conf demo.conf
```

Now edit the configuration file:

```apache
sudo nano demo.conf
```

We should have our email in ServerAdmin so users can reach you in case Apache experiences any error:

```apache
ServerAdmin yourname@example.com
```

We also want the DocumentRoot directive to point to the directory our site files are hosted on:

```apache
DocumentRoot /var/www/demo/
```

The default file doesn’t come with a ServerName directive so we’ll have to add and define it by adding this line below the last directive:

```apache
ServerName demo.example.com
```

This ensures people reach the right site instead of the default one when they type in demo.example.com.

Now that we’re done configuring our site, let’s save and activate it in the next step

4. # **Activating VirtualHost file :**
    

After setting up our website, we need to activate the virtual hosts configuration file to enable it. We do that by running the following command in the configuration file directory

```apache
sudo a2ensite demo.conf
```

You should see the following output

```apache
Enabling site demo.
To activate the new configuration, you need to run:
service apache2 reload
root@ubuntu-server:/etc/apache2/sites-available#
```

To load the new site, we restart Apache by typing:

```apache
service apache2 reload
```

End result

Now is the moment of truth, let’s type our host name in a browser

It will work.
