How To Install Apache 2 On Ubuntu 18 04 LTS

By bhagwatchouhan
How To Install Apache 2 On Ubuntu 18.04 LTS

In this tutorial, we will discuss all the steps required to install Apache 2 Web Server on Ubuntu 18.04 LTS. The steps required to install Apache 2 on other Ubuntu versions and Linux systems should be similar to the steps mentioned in this post.

 

Install Apache2

Execute the below-mentioned commands to install Apache 2 on Ubuntu 18.04 LTS.

# Refresh the indexes
sudo apt-get update
# Install Apache sudo apt-get install apache2
# Verify Apache apache2 -version
# Output Server version: Apache/2.4.29 (Ubuntu) Server built: 2020-03-13T12:26:16
# Autoclean sudo apt-get autoclean
# Autoremove sudo apt-get autoremove # OR sudo apt-get --purge autoremove

The above-mentioned commands install the latest version 2.4.29 of Apache 2 while writing this tutorial.

 

Install Apache 2 Modules

We will also install the security module if not done yet, using the below-mentioned command.

# Install security
sudo apt-get install libapache2-mod-security2
# Enable additional modules sudo a2enmod rewrite ssl security2 deflate expires headers
# Restart Apache 2 sudo systemctl restart apache2

 

Check Installation

You can verify the installation by opening the URL - http://localhost using any Browser. It must show the welcome page as shown in Fig 1.

Apache 2 Welcome Page

Fig 1

 

Basic Commands

This section explains the basic commands available in Ubuntu, and specific to the Apache Web Server installed by us.

# Stop the Server
sudo service apache2 stop
# OR
sudo systemctl stop apache2
# Start the Server sudo service apache2 start # OR sudo systemctl start apache2
# Re-start the Server sudo service apache2 restart # OR sudo systemctl restart apache2
# Server Status sudo systemctl status apache2
# Reload the Server sudo service apache2 reload
# Enable Site sudo a2ensite <config name>
# Disabled Site sudo a2dissite <Config Name>
# Enable Module sudo a2enmod <module name>
# Disable Module sudo a2dismod <module name>

We must always use the reload command to apply the site configurations without disrupting the active sessions.

 

Basic Configuration

In this section, we will do some basic configuration specific to performance. These are optional and configure only if required.

Keep-Alive

Configure the keep-alive settings as mentioned below. The actual settings might vary based on your requirements.

# Open apache2 configuration
sudo nano /etc/apache2/apache2.conf
# Check the values of below mentioned options KeepAlive On MaxKeepAliveRequests 50 KeepAliveTimeout 5
MPM - Prefork

Configure server process as shown below. Change the values based on requirements.

#sudo nano /etc/apache2/mods-available/mpm_prefork.conf
<IfModule mpm_prefork_module>
        StartServers            5
        MinSpareServers         5
        MaxSpareServers         10
        MaxRequestWorkers       150
        MaxConnectionsPerChild  0
</IfModule>
# Save the settings
# Disable MPM Event sudo a2dismod mpm_event
# Enable MPM Prefork sudo a2enmod mpm_prefork
Production Mode

Update server tokens and signature as shown below.

# Tokens and Signature
sudo nano /etc/apache2/conf-enabled/security.conf
ServerTokens Prod ServerSignature Off
# Restart Apache 2 sudo systemctl restart apache2

These are the basic steps required to install Apache 2 and the basic configurations that can be applied to it.

 

Secure Apache

You can further secure the websites and web applications deployed on Apache using the SSL certificate. The most commonly used service for SSL certificates is Let's Encrypt. You can follow Configure Virtual Host On Apache to configure the websites for production usage. You can also follow How To Install Let's Encrypt For Apache On Ubuntu and Redirect HTTP to HTTPS on Apache to secure your websites using Let's Encrypt.

Share this blog:

Profile picture for user bhagwatchouhan
bhagwatchouhan