How to Install and Configure Apache on Ubuntu: Complete Beginner’s Guide

1. Introduction

About Installing Apache on Ubuntu

Apache is one of the most widely used web server software solutions in the world. As an open-source platform, it is known for its extensive functionality and high stability, making it suitable for everything from personal projects to enterprise-level websites. Especially on Linux distributions like Ubuntu, installing and configuring Apache is relatively easy, providing a friendly environment even for beginners.

In this article, we will explain the specific steps required to install Apache on Ubuntu. We will also cover basic configurations and troubleshooting tips after installation. By following this guide, even first-time users will be able to set up Apache smoothly and start building a web server without difficulty.

Why Choose Apache?

Apache is widely adopted for the following reasons:

  • Open Source: Free to use and continually improved by an active community.
  • Flexible Customization: A modular system allows you to add only the features you need.
  • High Compatibility: Works seamlessly with many programming languages and middleware such as PHP and MySQL, making it ideal for building a LAMP environment.

Ubuntu is supported by a broad range of users—from beginners to experts—and pairs extremely well with Apache, making it an ideal choice for your first server setup.

2. What Is Apache? Overview and Use Cases

Basic Overview of Apache

Originally released in 1995, Apache has grown into one of the most popular web servers on the internet. It is open source, freely downloadable, and highly stable. Many large-scale websites around the world rely on Apache to deliver their web content.

Use Cases of Apache

The primary purpose of Apache is to provide content such as HTML, images, videos, and PHP files through the web. Typical use cases include:

  • Website Hosting: Hosting web content for enterprise sites, personal blogs, news platforms, and more.
  • Running PHP Applications: Hosting dynamic web applications such as WordPress by combining PHP and MySQL.
  • SSL Support: Implementing HTTPS for secure communication.

Apache’s modular architecture allows you to add features as needed. For example, mod_ssl enables easy SSL/TLS implementation, while mod_rewrite allows URL rewrites and redirect rules.

Comparison with Other Web Servers

Notable competitors include Nginx and LiteSpeed. Nginx excels at handling a large number of concurrent connections, making it popular for high-traffic websites. Apache, however, offers a long track record, abundant documentation, and flexible configuration options, making it easier to manage and customize.

3. Requirements and Prerequisites

Initial Setup on Ubuntu

Before installing Apache on Ubuntu, some preliminary steps are required. Ensure that Ubuntu is running properly and update your system as needed. Doing so helps avoid installation-related issues by keeping required packages up to date.

Updating the System

  1. Update Ubuntu’s package list using the following command:
sudo apt update
  1. To upgrade all system packages, run the following command:
sudo apt upgrade

This ensures that all required dependencies for installing Apache are up to date.

Connecting via SSH

In most cases, you will manage your Ubuntu server remotely. Use SSH (Secure Shell) to establish a secure connection to the server. Connect using the following command:

ssh username@server-ip-address

Once connected via SSH, you can proceed with the Apache installation process.

4. Installing Apache

How to Install Apache

Apache installation on Ubuntu is very simple using the apt package manager. Follow the steps below.

1. Install Apache

Run the following command in the terminal to install Apache2:

sudo apt install apache2

This command installs Apache2 along with all required dependencies.

2. Verify the Installation

Confirm that Apache was installed correctly by checking its status:

sudo systemctl status apache2

If the output shows active (running), Apache is running successfully.

Enable Automatic Startup

To ensure Apache starts automatically whenever the server reboots, run:

sudo systemctl enable apache2

Firewall Configuration (UFW)

If your firewall is enabled, open ports 80 (HTTP) and 443 (HTTPS) so Apache can receive web traffic. Use Ubuntu’s UFW tool to allow access:

sudo ufw allow 'Apache'

This opens the necessary ports and allows external access to Apache.

5. Configuring and Managing Apache

Managing the Service

Once Apache is installed, learn these basic commands to start, stop, or restart the service.

Start Apache

sudo systemctl start apache2

Stop Apache

sudo systemctl stop apache2

Restart Apache

sudo systemctl restart apache2

Check the Web Server

To verify that Apache is running, open a browser and access your server’s IP address or localhost:

http://localhost

6. Permissions and Security Settings

Setting Permissions for the Web Server

After installation, configure permissions on the document root /var/www/html so that the Apache user (www-data) can access the files.

sudo chown -R www-data:www-data /var/www/html

Basic Security Configuration

When making your web server public, implement the following security measures:

  1. Disable Directory Listing: Edit /etc/apache2/apache2.conf to prevent unintended information disclosure.
Options -Indexes
  1. Firewall Configuration: Open only required ports using UFW.
  2. Enable SSL/TLS: Use Let's Encrypt to enable HTTPS for secure communication.

7. Troubleshooting Common Issues

Frequent Problems and Solutions

1. Apache Won’t Start

Issue: Running sudo systemctl start apache2 does not start Apache.
Cause: Another service may be using port 80.
Solution:

sudo lsof -i :80

Identify the process using the port and stop it:

sudo kill [process-id]
sudo systemctl start apache2

2. Firewall Blocking Access

Issue: Apache is running, but you cannot access the site via browser.
Cause: The firewall may be blocking ports 80 or 443.
Solution:

sudo ufw status
sudo ufw allow 'Apache'

3. Permission Errors

Issue: You encounter permission errors when uploading files.
Cause: The document root ownership or permissions are not configured correctly.
Solution:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

4. Configuration File Errors

Issue: Apache starts, but does not function properly due to configuration errors.
Solution:

sudo apache2ctl configtest
sudo systemctl restart apache2

8. Summary and Next Steps

Summary

This article detailed how to install and configure Apache on Ubuntu. Here are the main steps:

  1. Prepare Ubuntu: Update the system and confirm SSH access.
  2. Install Apache: Use apt for easy installation.
  3. Configure Firewall: Open ports 80 and 443.
  4. Basic Operations: Start, stop, and restart Apache.
  5. Permissions and Security: Configure proper ownership and security settings.
  6. Troubleshooting: Solve common issues.

Next Steps

After installing Apache, consider the following enhancements:

  1. Enable SSL/TLS: Use Let's Encrypt to secure communication via HTTPS.
  2. Build a LAMP Stack: Install MySQL and PHP to deploy dynamic applications.
  3. Add Modules: Extend functionality with modules like mod_rewrite and mod_ssl.

With these steps completed, your Apache-powered web server is ready for deployment. Well done!

侍エンジニア塾