How To Install the Apache Web Server on Debian 10


Installing Apache

Let's begin by updating the local package index to reflect the latest upstream changes:

sudo apt update

Then, install the apache2 package:

sudo apt install apache2


root@vps:~# sudo apt install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1

Adjusting the Firewall

During installation, Apache registers itself with UFW to provide a few application profiles that can be used to enable or disable access to Apache through the firewall.

List the ufw application profiles by typing:

sudo ufw app list


root@vps:~# sudo ufw app list
Available applications:
WWW Cache
WWW Full
WWW Secure

The Apache profiles begin with WWW:

WWW: This profile opens only port 80 (normal, unencrypted web traffic

WWW Cache: This profile opens only port 8080 (sometimes used for caching and web proxies)

WWW Full: This profile opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic)

WWW Secure: This profile opens only port 443 (TLS/SSL encrypted traffic)

It is recommended that you enable the most restrictive profile that will still allow the traffic you've configured. Since we haven't configured SSL for our server yet in this guide, we will only need to allow traffic on port 80:

sudo ufw allow 'WWW'


root@vps:~# sudo ufw allow 'WWW'
Rule added
Rule added (v6)

You can verify the change by typing:

sudo ufw status


root@vps:~# sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

Checking your Web Server

Check with the systemd init system to make sure the service is running by typing:

sudo systemctl status apache2


root@vps:~# sudo systemctl status apache2
‚óŹ apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Active: active (running) since Mon 2019-07-29 16:02:29 EDT; 11min ago

You can access the default Apache landing page to confirm that the software is running properly through your IP address. If you do not know your server's IP address, you can get it a few different ways from the command line.

Try typing this at your server's command prompt:

hostname -I

You will get back a few addresses separated by spaces. You can try each in your web browser to see if they work.

An alternative is using the curl tool, which should give you your public IP address as seen from another location on the internet.

First, install curl using apt:

sudo apt install curl

Then, use curl to retrieve using IPv4:

curl -4

When you have your server's IP address, enter it into your browser's address bar: