< Hi, I am Ahtasham Khan, a senior software engineer, entrepreneur, mentor and an author. />

How to Set Up Apache 2.4 on Linux

Apache HTTP Server, commonly referred to as Apache, is one of the most widely used web servers in the world. Setting up Apache on a Linux system is a fundamental skill for anyone interested in web development or server management. This guide will walk you through the step-by-step process of installing and configuring Apache 2.4 on a Linux-based operating system.


Before you begin, ensure you have the following:

  • A Linux-based operating system (e.g., Ubuntu, Debian, CentOS)
  • Access to a terminal with administrative privileges (root or sudo access)

Step 1: Update Package Lists

It’s good practice to update your system’s package lists to ensure you install the latest versions of software.

Open a terminal and run the following commands:

sudo apt update   # For Debian/Ubuntu
sudo yum update   # For CentOS/RHEL

Step 2: Install Apache

Next, install the Apache web server. Use the package manager specific to your Linux distribution:

For Debian/Ubuntu:

sudo apt install apache2

For CentOS/RHEL:

sudo yum install httpd

During installation, the package manager will handle dependencies and prompt you to confirm the installation. Type ‘Y’ and press Enter to proceed.

Step 3: Start Apache Service

After installation, Apache should start automatically. If not, you can start the service manually:

For Debian/Ubuntu:

sudo systemctl start apache2

For CentOS/RHEL:

sudo systemctl start httpd

Step 4: Verify Apache Installation

To confirm that Apache is running and accessible, open a web browser and enter http://localhost or http://your_server_IP_address. You should see the Apache2 default page indicating a successful installation.

Step 5: Configure Firewall (if necessary)

If you have a firewall enabled on your server (e.g., UFW on Ubuntu), you may need to allow HTTP traffic:

For UFW (Ubuntu):

sudo ufw allow 'Apache'

Step 6: Adjust Apache Settings (Optional)

Apache’s main configuration file is typically located at /etc/apache2/apache2.conf on Debian/Ubuntu or /etc/httpd/conf/httpd.conf on CentOS/RHEL. You can modify settings like server name, ports, and virtual hosts as needed. Use a text editor such as nano or vim:

sudo nano /etc/apache2/apache2.conf   # For Debian/Ubuntu
sudo nano /etc/httpd/conf/httpd.conf   # For CentOS/RHEL

Make your changes, then save and exit the editor.

Step 7: Manage Apache Service

To manage Apache, use systemctl commands:

  • Start Apache: sudo systemctl start apache2 (Debian/Ubuntu) or sudo systemctl start httpd (CentOS/RHEL)
  • Stop Apache: sudo systemctl stop apache2 or sudo systemctl stop httpd
  • Restart Apache: sudo systemctl restart apache2 or sudo systemctl restart httpd
  • Check Apache status: sudo systemctl status apache2 or sudo systemctl status httpd

Step 8: Enable Apache Modules (Optional)

Apache modules enhance its functionality. Use a2enmod (Debian/Ubuntu) or sudo yum install modulename (CentOS/RHEL) to enable specific modules like SSL, rewrite, or PHP.

Step 9: Deploy Your Website

To host a website, place your files in the default document root directory:

  • Debian/Ubuntu: /var/www/html
  • CentOS/RHEL: /var/www/html

Upload your HTML, CSS, JavaScript, and other assets to this directory.


You’ve now successfully set up Apache 2.4 on your Linux server. This foundational skill enables you to host websites, deploy web applications, and learn more about web server management. As you become more familiar with Apache, explore advanced configurations, security settings, and integration with other services to enhance your server’s capabilities. Apache’s robust documentation and community support will assist you in mastering its features and optimizing performance for your specific needs. Happy coding!

Recent on YouTube!

My eBook is Available!

Web Creation for Beginners - 2014