Install Apache Server Centos 7

admin7 April 2024Last Update :

Understanding Apache Web Server

Apache HTTP Server, commonly known as Apache, is one of the most widely used web server software across the globe. It’s an open-source and free-to-use server that provides a secure, efficient, and extensible platform for serving web content. Before diving into the installation process on CentOS 7, it’s crucial to understand why Apache stands out among its competitors.

  • Modularity: Apache features a modular architecture, allowing administrators to easily extend its functionality with additional modules.
  • Customizability: It offers extensive configuration options, catering to various hosting needs and preferences.
  • Community Support: Being open-source, Apache has a vast community contributing to its development and providing support.
  • Performance: With proper optimization, Apache can handle a large number of requests simultaneously, making it suitable for both small and large websites.

Prerequisites for Installing Apache on CentOS 7

Before proceeding with the installation, ensure that you have:

  • A CentOS 7 system with a non-root user with sudo privileges.
  • An active internet connection to download necessary packages.
  • Access to a terminal or command line interface.
  • Basic knowledge of Linux commands and text editors like vi or nano.

Step-by-Step Installation of Apache Server on CentOS 7

Updating System Packages

Firstly, update your system’s package index to make sure all existing packages are up to date. This can be done using the following command:

yum update -y

Installing Apache

Once the system is updated, install Apache using the yum package manager with this command:

yum install httpd -y

After the installation completes, you can verify that Apache is installed by checking its version:

httpd -v

Starting and Enabling Apache Service

To start the Apache service, use the systemctl command:

sudo systemctl start httpd.service

To ensure Apache starts automatically at boot, enable it using:

sudo systemctl enable httpd.service

Configuring Firewall

If you have firewalld running, you’ll need to allow HTTP and HTTPS traffic through the firewall:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Testing Apache Installation

You can test if Apache is running by accessing your server’s IP address in a web browser. You should see the default CentOS 7 Apache welcome page.

Configuring Apache Virtual Hosts

Virtual hosts allow you to host multiple websites on a single server. Here’s how to set up a virtual host on CentOS 7:

Creating Directory Structure

Create directories for your website(s) within the /var/www/ directory. For example:

sudo mkdir -p /var/www/example.com/public_html

Granting Permissions

Next, grant ownership of the directory to your user:

sudo chown -R $USER:$USER /var/www/example.com/public_html

Ensure that read access is granted to the rest of the world:

sudo chmod -R 755 /var/www

Creating a Demo Page

Create a simple HTML file in the public_html directory to serve as a homepage:

echo "Welcome to Example.com!

Success! The example.com virtual host is working!

" | sudo tee /var/www/example.com/public_html/index.html

Setting Up Virtual Host Files

Copy the default Apache configuration file to create a new virtual host file:

sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/example.com.conf

Edit the new configuration file and modify it to point to your new directory and domain:

sudo nano /etc/httpd/conf.d/example.com.conf

Here’s an example of what the virtual host configuration might look like:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/requests.log combined
</VirtualHost>

Restarting Apache

For the changes to take effect, restart Apache:

sudo systemctl restart httpd.service

Securing Apache with Let’s Encrypt SSL Certificate

Securing your website with an SSL certificate is essential for protecting your users’ data. Let’s Encrypt provides free SSL certificates that can be easily installed on CentOS 7.

Installing Certbot

Install the EPEL repository and then install Certbot, which is the Let’s Encrypt client:

sudo yum install epel-release -y
sudo yum install certbot python2-certbot-apache -y

Obtaining an SSL Certificate

Run Certbot to obtain and install an SSL certificate automatically:

sudo certbot --apache -d example.com -d www.example.com

Follow the prompts to complete the process. Certbot will modify your Apache configuration to use the SSL certificate.

Maintaining and Monitoring Apache Performance

Regular maintenance and monitoring are key to ensuring that your Apache server remains secure and performs well.

Updating Apache

Keep Apache up to date with the latest security patches and features by regularly updating the software:

sudo yum update httpd

Monitoring Apache Status

The mod_status module allows you to monitor Apache’s performance. Enable it by editing the Apache configuration file and restarting the service.

Optimizing Apache Configuration

Tweak settings such as MaxKeepAliveRequests and KeepAliveTimeout in the Apache configuration file to optimize performance based on your server’s resources and expected traffic load.

Frequently Asked Questions

How do I uninstall Apache from CentOS 7?

To uninstall Apache, use the following command:

sudo yum remove httpd -y

Can I install Apache alongside other web servers like Nginx?

Yes, but they cannot both listen on the same port. You would need to configure them to work together, typically with one acting as a reverse proxy for the other.

How do I renew my Let’s Encrypt SSL certificate?

Let’s Encrypt certificates are valid for 90 days. To renew them, simply run:

sudo certbot renew

What should I do if I encounter errors during the Apache installation?

Check the Apache error logs located at /var/log/httpd/error_log for specific error messages that can help diagnose the issue.

References

Leave a Comment

Your email address will not be published. Required fields are marked *


Comments Rules :

Breaking News