How to install Apache Web Server on Ubuntu 20.04?
Overview
The Apache web server is one of the most widely used web servers in the world. It offers a host of powerful capabilities, including modules that can be loaded dynamically, powerful media support as well as full integration with various well-liked programs.
This tutorial will show you how to set up the Apache server on a host running Ubuntu version 20.04.
Prerequisites
There are certain prerequisites that need to be met before you begin.
Ubuntu 22.04-equipped system
A regular user (non-root) having Sudo privileges
Internet connection
Knowledge of Command Line Interface (CLI)
Get Started
Step 1: Setting up Apache
Apache can be installed using customary tools (package management) since it is part of Ubuntu's usual software repositories.
Let's start by incorporating the most recent upstream updates by using the following command:
sudo apt update

Now install apache2 package by using the following command:
sudo apt install apache2

After you've confirmed the installation process, apt will now install Apache along with all required components.
Step 2: Checking the Web Server
The latest Ubuntu version 20.04 launches Apache after the installation procedure is complete and the web server will be operational by now.
Ensure that the service runs by verifying it by using the following command:
sudo systemctl status apache2

This result shows that the service launched properly. However, requesting a webpage from Apache is the most effective approach to testing this.
Through your IP address, you can browse the default home page of Apache to make sure the program is functioning properly. There are several ways to obtain your server's IP address from the command prompt interface if you are unsure of it.
Enter the following at the command prompt on your server:
hostname -I
A list of addresses with spaces between them will be returned. To find out if they function, you can test each one on your system.

Utilizing the Icanhazip program is a different choice that should provide you with your IP address:
curl -4 icanhazip.com
Once you know your server's IP address, type it into the address bar of your browser as http://server_ip.
The default Apache web page for Ubuntu version 20.04 should appear:

This page ensures Apache is now operating properly. Additionally, it contains certain fundamental details regarding the locations of key Apache files as well as the directories.
Step 3: Handling the Apache Services
Now that the web server is operational, let's review some fundamental systemctl administration commands.
Type the following to terminate the web server:
sudo systemctl stop apache2
When a web server is halted, enter the following command to restart it:
sudo systemctl start apache2
Restart the service once again after stopping it by typing:
sudo systemctl restart apache2
Most of the time, Apache can reload without losing connections if you are only making configuration-based changes. Use the following command to accomplish this:
sudo systemctl reload apache2
When a server boots up, Apache is set up by default to launch immediately. Disable this behavior if that is not your requirement by using:
sudo systemctl disable apache2
Type the following command to make the service start up again at boot:
sudo systemctl enable apache2
When the server restarts, Apache will now launch automatically.
Step 4: Setting up of Virtual Hosts (Optional)
Using virtual hosts, you can host several domains on a single Apache web server by encapsulating configuration information.
For your domain, make the following directory:
sudo mkdir /var/www/my_domain
Next, use the $USER variable to specify who owns the directory:
sudo chown -R $USER:$USER /var/www/my_domain
Your web roots' permissions should be correct if you haven't modified the umask value, which controls the default file permissions. The following command can be used to check your permissions to determine if they are configured appropriately such that the owner has written, read, and execute permissions while only groups and other users have read and executed permissions:
sudo chmod -R 755 /var/www/my_domain
Next, utilizing nano or your preferred editor, make a test index.html file as follows:
sudo nano /var/www/my_domain/index.html
Add the given template HTML inside:
<html>
<head>
<title>Welcome to my_domain!</title>
</head>
<body>
<h1>Success! The mydomain virtual host is working!</h1>
</body>
</html>
When you're done, save and shut the file.
It is important to construct virtual configuration files with the appropriate directives to enable Apache to deliver this content. Let's create a new configuration file by using the following command:
sudo nano /etc/apache2/sites-available/my_domain.conf
Paste the configuration block that follows:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName my_domain
ServerAlias www.my_domain
DocumentRoot /var/www/my_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
When you're done, save and shut the file.
Let's now enable the file using:
sudo a2ensite my_domain.conf
Let's check for configuration issues next:
sudo apache2ctl configtest
To put your modifications to work, restart Apache:
sudo systemctl restart apache2
Your domain name should now be served by Apache. You may verify this by typing http://my_domain on your browser.
Conclusion
Now that your web server is set up, you have a variety of options for the content types you can offer and the technology you can utilize to give users a richer experience.
Last updated
Was this helpful?