The crusade on how awesome, ideal, and convenient the Apache web server is can never get old. It continues to be a lifesaver for most individuals working on web application projects.
Its popularity as a web server application is due to its open-source attribute. Moreover, the module-rich nature of Apache makes it flexibly configurable to its users. Also, when you decide to expand the footprints of your web application projects, Apache makes it possible to accommodate such growing projects.
[ You might also like: How to Sync Two Web Servers in Linux Automatically ]
Rocky Linux, on the other hand, is a community-based enterprise Linux operating system distribution. Since it is somewhat a fork of RHEL’s (Red Hat Enterprise Linux) source code, it is also attributed as a complete binary-compatible and downstream release of its maker (RHEL).
In short, the Rocky Linux project has two critical objectives in mind and the release of an enterprise Linux operating system that is: production-grade and community-supported.
Install Apache in AlmaLinux
To get Apache up and running on your Rocky Linux, consider the following installation steps. Make sure you are a root user or have Sudoer privileges on the system you are using.
Always ensure your Rocky Linux system is up-to-date for its performance to remain top-notch.
$ sudo dnf update
Depending on how often you use it, the system update might or might not take a while to complete.
Next, install Apache and its associated dependencies from the AppStream and BaseOS repo.
$ sudo dnf install httpd httpd-tools
Due to the light nature of the Apache package, the installation should take less than a minute to complete.
In Rocky Linux, Apache operates via the
httpd service hence the reason why we reference httpd during its installation.
By default, once the Apache installation successfully completed, the
httpd service should be up and running. To be certain, we need to start it again.
$ sudo systemctl start httpd
The next step is to ensure that Apache is continuously running even after restarting the system. We will achieve this objective by enabling Apache’s httpd service.
$ sudo systemctl enable httpd
The next step is to check the status of Apache to ensure that it is up and running.
$ sudo systemctl status httpd
We have verified that Apache is up and running on our Rocky Linux system. Other useful Apache commands to consider include the following:
$ sudo systemctl stop httpd $ sudo systemctl restart httpd $ sudo systemctl reload httpd
Enable Apache on Firewall in Rocky Linux
This step gives the outside world access to Apache through HTTP (port 80) and HTTPS (port 443) protocols.
It is only through this step that you will be able to access your Apache-powered web applications from other machines/computers with varying operating system interfaces.
$ sudo firewall-cmd --zone=public --add-port=80/tcp $ sudo firewall-cmd --zone=public--add-port=443/tcp
$ sudo firewall-cmd --reload
Now you can use any other client machine to access your Rocky Linux server through its IP address on a web browser. You should be able to land on Apache’s default page. The page tells you that Apache is ready to serve your web apps.
Apaches stores your website in /var/www/html/. It is from this location that you can configure how your web application should be represented from a web browser’s viewpoint.
Hosting a Website with Apache in Rocky Linux
The default Apache configuration is suitable to run a single website, but if you want to run multiple website domains, you should use the Apache Virtual Hosts directive feature.
For example, to run another website domain called ‘linuxshelltips.in‘, you need to create a separate virtual host directory and a log directory to hold the log files with the right permissions.
$ sudo mkdir -p /var/www/linuxshelltips.in/html $ sudo mkdir -p /var/www/linuxshelltips.in/log $ sudo chown -R $USER:$USER /var/www/linuxshelltips.in/html $ sudo chmod -R 755 /var/www
Next, create a sample index.html file to test the site.
$ sudo vi /var/www/linuxshelltips.in/html/index.html
Populate it with the following HTML code.
<!DOCTYPE html> <html> <head> <title>Welcome to linuxshelltips.i</title> </head> <body> <h1>LinuxShellTips Introduces linuxshelltips.in</h1> <p>You have successfully accessed linuxshelltips.in home page!</p> </body> </html>
Creating Apache Virtual Host in Rocky Linux
Now create directories called sites-available and sites-enabled for holding the virtual host files.
$ sudo mkdir /etc/httpd/sites-available $ sudo mkdir /etc/httpd/sites-enabled
Next, mention the sites-enabled directory path in the Apache configuration file that needs access to the virtual host files.
$ sudo vi /etc/httpd/conf/httpd.conf
In the end, add the following line and close the file.
Finally, create a new virtual host file for our domain linuxshelltips.in.
$ sudo vi /etc/httpd/sites-available/linuxshelltips.in
Next, add the following virtual host configuration with the domain name you are using.
<VirtualHost *:80> ServerAdmin www.linuxshelltips.in ServerAlias linuxshelltips.in DocumentRoot /var/www/linuxshelltips.in/html ErrorLog /var/www/linuxshelltips.in/log/error.log CustomLog /var/www/linuxshelltips.in/log/access.log combined </VirtualHost>
Save the file and close the terminal editor.
To active our virtual host file, you need to create a symbolic link between the sites-available and the sites-enabled directories.
$ sudo ln -s /etc/httpd/sites-available/linuxshelltips.in /etc/httpd/sites-enabled/linuxshelltips.in.conf
Finally, restart the Apache and make sure it is running.
$ sudo systemctl restart httpd $ sudo systemctl status httpd
Now you should be able to see the hosted index.html page through your domain name.
Secure Apache with HTTPS in Rocky Linux
To secure Apache with HTTPS, you need to install and use Free Let’s Encrypt SSL certificate by installing Certbot and mod_ssl packages from the EPEL repo.
$ sudo dnf install epel-release $ sudo dnf install certbot python3-certbot-apache mod_ssl
Once Certbot is installed, you can obtain a free SSL certificate for our domain.
$ sudo certbot --apache -d linuxshelltips.in
The above command downloads SSL certificates under a subdirectory named after your domain in the /etc/letsencrypt/live directory.
Once you obtain a certificate for your domain, you can verify the SSL certificate at the following URL.
Apache is a dynamic and most popular web server which when fused with a server OS like Rocky Linux creates a very performant and efficient environment.