How to Install Apache on Ubuntu 18.04


  • A system running Ubuntu 18.04 LTS (Bionic Beaver)
  • An internet connection
  • Access to a user account with sudo privileges

How to Install Apache on Ubuntu

Before installing new software, it’s a good idea to refresh your local software package database to make sure you are accessing the latest versions. This helps cut down on the time it takes to update after installation, and it also helps prevent zero-day exploits against outdated software.

Open a terminal and type:

sudo apt-get update

Let the package manager finish updating.

Step 1: Install Apache

To install the Apache package on Ubuntu, use the command:

sudo apt-get install apache2

The system prompts for confirmation – do so, and allow the system to complete the installation.

Terminal command to install Apache on Ubuntu.

Step 2: Verify Apache Installation

To verify Apache was installed correctly, open a web browser and type in the address bar:


The web browser should open a page labeled “Apache2 Ubuntu Default Page,” as in the image below:

apache2 the default welcome page on ubuntu

Note: Replace local.server.ip with the IP address of your server. If you are unsure what’s the IP address, run the following terminal command:

hostname -I | awk '{print $1}'

The output will return your server’s IP address.

Step 3: Configure Your Firewall

Although the Apache installation process is complete, there is one more additional step. Configure the default UFW firewall to allow traffic on port 80.

Start by displaying available app profiles on UFW:

sudo ufw show app list

The terminal should respond by listing all available application profiles, as seen in the example below.

Available applications:
  Apache Full
  Apache Secure

Use the following command to allow normal web traffic on port 80:

sudo ufw allow 'Apache'
Image of how Apache traffic is allowed in Ubuntu terminal.

Verify the changes by checking UFW status:

sudo ufw status
Check UFW status and verify that Apache traffic is allowed.

If you have other applications or services to allow, make sure you configure your firewall to allow traffic. For example, using the sudo ufw allow 'OpenSSH' command will enable secure, encrypted logins over the network.

Read More

How To Install the Apache Web Server on CentOS 7


Installing Apache on CentOS

Step 1: Update Software Versions List

Ensure you are using the latest versions of the software. In a terminal window, input the command:

sudo yum update

The system should reach out to the software repositories and refresh the list to the latest versions.

Step 2: Install Apache

To install Apache on your CentOS server, use the following command:

sudo yum install httpd

The system should download and install the Apache software packages.

Step 3: Activate Apache

To activate Apache, start its service first.

1. Enter the following command in a terminal window:

sudo systemctl start httpd

This will start the Apache service.

2. Next, set the Apache service to start when the system boots:

sudo systemctl enable httpd

Step 4: Verify Apache Service

Display information about Apache, and verify it’s currently running with:

sudo systemctl status httpd

Step 5: Configure firewalld to Allow Apache Traffic

In a standard installation, CentOS 7 is set to prevent traffic to Apache.

Normal web traffic uses the http protocol on Port 80, while encrypted web traffic uses the https protocol, on Port 443.

1. Modify your firewall to allow connections on these ports using the following commands:

sudo firewall-cmd ––permanent ––add-port=80/tcp
sudo firewall-cmd ––permanent ––add-port=443/tcp

2. Once these complete successfully, reload the firewall to apply the changes with the command:

sudo firewall-cmd ––reload

Step 6: Configure Virtual Hosts on CentOS 7 (optional)

Virtual hosts are different websites that you run from the same server. Each website needs its own configuration file.

Make sure these configuration files use the .conf extension, and save them in the /etc/httpd/conf.d/ directory.

There are a couple of best practices to use when you’re setting up different websites on the same server:

  • Try to use the same naming convention for all your websites. For example:
    • /etc/httpd/conf.d/
    • /etc/httpd/conf.d/
  • Use a different configuration file for each domain. The configuration file is called a vhost, for a virtual host. You can use as many as you need. Keeping them separate makes troubleshooting easier.

1. To create a virtual host configuration file, enter the following into a terminal window:

sudo vi /etc/httpd/conf.d/vhost.conf

This will launch the Vi text editor, and create a new vhost.conf file in the /etc/httpd/conf.d directory.

2. In the editor, enter the following text:

NameVirtualHost *:80

<VirtualHost *:80>

ServerAdmin [email protected]



DocumentRoot /var/www/html/

ErrorLog /var/www/html/

CustomLog /var/www/html/ combined


Save the file and exit.

3. Next, enter the following command to create a directory for you to store your website files in:

sudo mkdir /var/www/hostiger/{public_html, logs}

4. Restart the Apache service to apply your changes by entering:

sudo systemctl restart httpd

Once the system finishes, you should be able to open a browser window to and see a default Apache test page.

You can replace Hostiger above with the name of your domain. If you are hosting more than one domain, make sure you create a new directory in /var/www/ for each one. You can copy the code block in your /etc/httpd/conf.d/vhost.conf file, and replace Hostiger with another domain name that you’re hosting.

Apache Directories and Files

One of the main ways Apache functions is through configuration files. They are located at /etc/httpd.

Apache has a main configuration file: /etc/httpd/conf/httpd.conf .

If there are any other configuration files, they are included in the main configuration file. They should use the .conf extension and should be stored in the /etc/httpd/conf.d/ directory.

You can enhance Apache’s functionality by loading additional modules.

The configuration files for these modules should be stored in: /etc/httpd/conf.modules.d/ directory.

Log files record all the activity of the Apache service, including client activity on the websites your system is hosting. These logs can be found in:  /var/log/httpd/.

Commands For Managing Apache Service

Other commands that you can use to control the Apache service include:

Stop Apache Service:

sudo systemctl stop httpd

Prevent or disable Apache from starting when the system boots:

sudo systemctl disable httpd

Re-enable Apache at boot:

sudo systemctl enable httpd

Restart Apache and apply any changes you have made:

sudo systemctl restart httpd


Great job, you have installed Apache on your CentOS 7 server. The basic installation and management of the Apache service are simple.