3.Configuring the Apache webserver
1. Change the Server Name and Port:
File to Edit: httpd.conf
or apache2.conf
Purpose: To set the server's hostname and port.
Steps:
Open the Apache configuration file. On Ubuntu/Debian, it's typically
/etc/apache2/apache2.conf
. On CentOS/RHEL, it's usually/etc/httpd/conf/httpd.conf
.Look for the
ServerName
directive and set it to your desired hostname:
ServerName yourhostname.com
If you want to change the default HTTP port (80), modify the
Listen
directive:
Listen 8080
2. Create a Virtual Host:
File to Edit: Create a new configuration file in the sites-available
directory (on Debian/Ubuntu) or /etc/httpd/conf.d
(on CentOS/RHEL).
Purpose: To host multiple websites or applications on the same Apache server.
Steps:
Create a new configuration file for your virtual host, e.g.,
mywebsite.conf
:
For Ubuntu/Debian:
sudo nano /etc/apache2/sites-available/mywebsite.conf
For CentOS/RHEL:
sudo nano /etc/httpd/conf.d/mywebsite.conf
Add a configuration block for your virtual host, specifying the server name, document root, error log, and custom log:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName yourwebsite.com
DocumentRoot /var/www/html/yourwebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Save the file and exit the text editor.
Enable the virtual host:
For Ubuntu/Debian:
sudo a2ensite mywebsite.conf
For CentOS/RHEL, if you placed the configuration file in /etc/httpd/conf.d
, it should be automatically enabled.
3. Secure the Web Server with SSL/TLS:
File to Edit: /etc/apache2/sites-available/default-ssl.conf
(on Debian/Ubuntu) or /etc/httpd/conf.d/ssl.conf
(on CentOS/RHEL).
Purpose: To enable HTTPS for secure connections.
Steps:
Ensure you have SSL/TLS certificates installed on your server. You can obtain certificates from a Certificate Authority or use Let's Encrypt.
Edit the SSL virtual host configuration file:
For Ubuntu/Debian:
sudo nano /etc/apache2/sites-available/default-ssl.conf
For CentOS/RHEL:
sudo nano /etc/httpd/conf.d/ssl.conf
Update the
SSLCertificateFile
andSSLCertificateKeyFile
directives with the paths to your certificate and private key files:
SSLCertificateFile /path/to/your/certificate.crt
SSLCertificateKeyFile /path/to/your/privatekey.key
Save the file and exit the text editor.
4. Implement Access Control:
File to Edit: Virtual host configuration file (e.g., mywebsite.conf
)
Purpose: To control access to specific directories or resources.
Steps:
Open the virtual host configuration file you created earlier.
Add directives to specify access control. For example, to restrict access to a directory:
<Directory /var/www/html/yourwebsite/restricted>
Require all denied
</Directory>
This example denies access to the /var/www/html/yourwebsite/restricted
directory for all users.
Save the file and exit the text editor.
5. Enable .htaccess Overrides (Optional):
File to Edit: Virtual host configuration file (e.g., mywebsite.conf
)
Purpose: To allow per-directory configuration using .htaccess
files.
Steps:
Open the virtual host configuration file.
Add the
AllowOverride
directive within a<Directory>
block to specify which directives can be overridden by.htaccess
files:
<Directory /var/www/html/yourwebsite>
AllowOverride All
</Directory>
This example allows all directives to be overridden using .htaccess
files in the /var/www/html/yourwebsite
directory.
Save the file and exit the text editor.
6. Restart Apache:
After making configuration changes, restart the Apache web server to apply the changes:
For Ubuntu/Debian:
sudo systemctl restart apache2
For CentOS/RHEL:
sudo systemctl restart httpd
These steps should help you configure Apache for various common tasks. Remember to adapt the configurations to your specific use case and requirements.
Last updated
Was this helpful?