Le serveur HTTP Apache (Apache) est l'un des logiciels de serveur Web multiplateforme gratuits et open source les plus populaires, publié sous les termes de la licence Apache 2.0.
L'Apache est populaire dans le cadre de la configuration LAMP, étant le A dans l'acronyme. La fonctionnalité du serveur apache peut être étendue avec les nombreux modules disponibles.
Prérequis :
- Serveur Centos 8 à jour
- Accès root au serveur (ou utilisateur avec accès sudo)
- Pare-feu configuré pour autoriser le trafic vers les ports 80 et 443
Installation d'Apache
Assurez-vous que les packages sont à jour :
sudo dnf -y update
Apache est disponible dans les référentiels logiciels CentOS 8 par défaut en tant que httpd
. Vous pouvez vérifier les informations à ce sujet à l'aide de cette commande :
sudo dnf info httpd
Vous devriez voir quelque chose de semblable à ceci :
$ sudo dnf info httpd
CentOS Linux 8 - AppStream 20 MB/s | 8.8 MB 00:00
CentOS Linux 8 - BaseOS 24 MB/s | 5.6 MB 00:00
Last metadata expiration check: 0:00:01 ago on Sat 28 Aug 2021 01:06:59 PM UTC.
Available Packages
Name : httpd
Version : 2.4.37
Release : 39.module_el8.4.0+778+c970deab
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.37-39.module_el8.4.0+778+c970deab.src.rpm
Repository : appstream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Installez-le avec cette commande :
sudo dnf install -y httpd
Activer http et https dans le pare-feu
Si votre pare-feu est opérationnel, vous devez activer les ports http et https à l'aide de ces commandes :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Rechargez maintenant le pare-feu pour appliquer ces nouvelles règles :
sudo firewall-cmd --reload
Démarrage et activation du service httpd
Par défaut, le service n'est pas démarré. Confirmez avec la commande suivante :
sudo systemctl status httpd
Sortie :
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd.service(8)
Démarrez le service avec cette commande :
sudo systemctl start httpd
Vous recevrez un statut actif lorsque le service sera en cours d'exécution
Confirmez qu'il fonctionne désormais correctement :
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2021-08-28 13:32:17 UTC; 17s ago
Docs: man:httpd.service(8)
Main PID: 65827 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 23800)
Memory: 28.9M
CGroup: /system.slice/httpd.service
├─65827 /usr/sbin/httpd -DFOREGROUND
├─65828 /usr/sbin/httpd -DFOREGROUND
├─65829 /usr/sbin/httpd -DFOREGROUND
├─65830 /usr/sbin/httpd -DFOREGROUND
└─65831 /usr/sbin/httpd -DFOREGROUND
Aug 28 13:32:17 test-app-server systemd[1]: Starting The Apache HTTP Server...
Aug 28 13:32:17 test-app-server httpd[65827]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8fc:23ff:fe51:cc>
Aug 28 13:32:17 test-app-server systemd[1]: Started The Apache HTTP Server.
Aug 28 13:32:17 test-app-server httpd[65827]: Server configured, listening on: port 80
Ce qui précède confirme qu'Apache fonctionne bien maintenant.
Pour confirmer que le service est accessible, veuillez vous diriger vers l'url suivante pour voir si vous pouvez obtenir la page httpd :
http://server_ip
Si vous ne connaissez pas le serveur, utilisez la commande suivante dans votre terminal :
curl -4 icanhazip.com
Une fois que vous avez visité cette page, si tout fonctionne correctement, vous devriez voir la page par défaut d'Apache comme dans la capture d'écran ci-dessous :
Pour vous assurer que le service est toujours démarré au démarrage, utilisez cette commande systemctl :
sudo systemctl enable httpd
Configuration des hôtes virtuels
Avec Apache, il est possible d'héberger plusieurs sites sur le même serveur sur lequel Apache s'exécute. Ceci peut toujours être réalisé en utilisant plusieurs domaines représentant chacun un site hébergé par le serveur.
Les hôtes virtuels Apache sont similaires aux blocs de serveur Nginx. Chaque hôte virtuel aura des détails de configuration pour un seul hôte. Vous pouvez avoir autant d'hôtes virtuels que vous le souhaitez.
Dans cet exemple, nous utiliserons le domaine site1.citizix.com
pour l'hôte virtuel mais soyez libre d'utiliser le domaine de votre choix. Veuillez noter que le DNS du domaine à utiliser doit déjà être configuré pour pointer vers l'adresse IP du serveur.
Confirmez cela avec :
dig -t A site1.citizix.com
Création d'un répertoire et d'exemples de contenu
La page par défaut d'Apache est configurée comme un hôte virtuel par défaut servant le contenu de /var/www/html
. Il est recommandé de créer le répertoire de votre site dans le /var/www
car c'est une bonne pratique de servir à partir de là.
Créons un répertoire pour notre site avec la commande suivante :
sudo mkdir /var/www/site1.citizix.com
Créons un simple index.html
page à servir à partir de notre site. Vous aurez besoin de vim pour que cela fonctionne, sinon utilisez cette commande :
sudo dnf install -y vim
Modifier le fichier :
sudo vim /var/www/site1.citizix.com/index.html
Ajouter du contenu au fichier :
<html>
<head>
<title>Hello from Citizix Site1!</title>
</head>
<body>
<h1>Hey!</h1>
<p>This is citizix site1. Welcome here.</p>
</body>
</html>
Enfin, assurons-nous que l'utilisateur actuel est propriétaire du répertoire du site :
sudo chown -R $USER:$USER /var/www/site1.citizix.com
Création d'un hôte virtuel
Les fichiers d'hôte virtuel Apache spécifient la configuration de chaque site et indiquent au serveur Web Apache comment répondre aux différentes demandes de domaine.
Les configurations Apache seront stockées dans le répertoire /etc/httpd/conf.d/
. Créons une configuration pour notre site :
sudo vim /etc/httpd/conf.d/site1.citizix.com.conf
Ajoutez le contenu suivant :
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
ErrorLog /var/log/httpd/site1.citizix.com.error.log
CustomLog /var/log/httpd/site1.citizix.com.requests.log combined
</VirtualHost>
Cela indiquera à Apache ce qui suit :
ServerName
et ServerAlias - nom de l'hôte à servirDocumentRoot
– où trouver directement la racine qui contient les documents Web accessibles au publicErrorLog
– où stocker les journaux d'erreurs pour ce siteCustomLog
– où stocker les journaux de requêtes pour ce site particulier
Enregistrez et fermez le fichier lorsque vous avez terminé
Tester l'hôte virtuel
Maintenant que la configuration est en place, nous devons tester que tout fonctionne comme prévu.
Redémarrez d'abord apache pour recharger la configuration :
sudo systemctl restart httpd
Lister le contenu du /var/log/httpd/
répertoire pour voir si Apache a créé les fichiers journaux :
Si tout va bien, vous devriez voir une sortie semblable à celle-ci :
# ls /var/log/httpd/
access_log error_log site1.citizix.com.error.log site1.citizix.com.requests.log
Si tout va bien, Apache servira maintenant votre nom de domaine. Vous pouvez tester cela en accédant à http://site1.citizix.com
, où vous devriez voir quelque chose comme ceci :
La capture d'écran ci-dessus confirme que l'hôte virtuel est correctement configuré et diffuse du contenu.
Si vous devez héberger plusieurs autres sites, répétez les étapes ci-dessus pour les sites de votre choix.
Conclusion
Nous avons réussi à installer et à configurer le serveur Web Apache dans les instructions ci-dessus dans Centos 8 Server.