Introduction:
Apache HTTP Server, commonly referred to as httpd, is a powerful and widely-used web server that serves web content over the HTTP protocol. This guide provides step-by-step instructions to configure an HTTP server using Apache, including basic installation, configuration, and setting up virtual hosts.
Installing Apache HTTP Server: Begin by installing Apache HTTP Server using the package manager (dnf
in this case).
sudo dnf install httpd
Configuring Firewall: Open necessary ports in the firewall to allow HTTP and HTTPS traffic.
sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent
Starting and Enabling Apache: Start the Apache service and enable it to start automatically at boot time.
sudo systemctl start httpd
sudo systemctl enable httpd
Editing httpd.conf
: Edit the main Apache configuration file to modify essential settings.
sudo vi /etc/httpd/conf/httpd.conf
Changing Default Port: Modify the default port on which Apache listens for incoming connections.
Listen 80
Server Configuration: Configure server-related settings such as
ServerAdmin
andServerName
.ServerAdmin root@localhost ServerName www.example.com:80
Setting DocumentRoot: Specify the directory from which Apache serves web content.
DocumentRoot "/var/www/html"
Virtual Hosts Configuration: Apache allows hosting multiple websites on a single server through virtual hosts. Follow these steps to set up virtual hosts:
Creating Document Roots: Create separate directories for each domain to host.
mkdir /var/www/store/ mkdir /var/www/blog/
Creating HTML Files: Create a simple HTML file for each domain.
echo "vHost store.example.com" > /var/www/store/index.html echo "vHost blog.example.com" > /var/www/blog/index.html
Configuring Virtual Hosts: Create a new configuration file for virtual hosts and define virtual host settings.
sudo vi /etc/httpd/conf.d/two-websites.conf
<VirtualHost *:80> DocumentRoot "/var/www/store/" ServerName store.example.com </VirtualHost> <VirtualHost *:80> DocumentRoot "/var/www/blog/" ServerName blog.example.com </VirtualHost>
Testing Configuration: Ensure the syntax of the configuration files is correct.
apachectl configtest
Conclusion:
By following the steps outlined in this guide, you can set up and configure an Apache HTTP server to serve web content efficiently. Additionally, configuring virtual hosts allows hosting multiple websites on a single server, providing flexibility and scalability for web hosting needs. Apache HTTP Server remains a reliable and robust choice for serving web content on the internet.