Comment installer le serveur Web Apache sur CentOS 7 – Bien choisir son serveur d impression
Sommaire
introduction
Le serveur HTTP Apache est le serveur Web le plus utilisé au monde. Il fournit de nombreuses fonctionnalités puissantes, notamment des modules chargeables dynamiquement, un support multimédia robuste et une intégration poussée à d’autres logiciels populaires.
Dans ce guide, vous allez installer un serveur Web Apache avec des hôtes virtuels sur votre serveur CentOS 7.
Conditions préalables
Vous aurez besoin des éléments suivants pour compléter ce guide:
Étape 1 – Installer Apache
Apache est disponible dans les référentiels de logiciels par défaut de CentOS, ce qui signifie que vous pouvez l’installer avec le Miam
directeur chargé d'emballage.
En tant qu'utilisateur sudo non root configuré dans les conditions préalables, mettez à jour le serveur Apache local. httpd
index du package pour refléter les dernières modifications en amont:
Une fois les packages mis à jour, installez le package Apache:
Après avoir confirmé l'installation, Miam
installera Apache et toutes les dépendances requises. Une fois l'installation terminée, vous êtes prêt à démarrer le service.
Étape 2 - Vérification de votre serveur Web
Apache ne démarre pas automatiquement sur CentOS une fois l'installation terminée. Vous devrez démarrer le processus Apache manuellement:
- sudo systemctl start httpd
Vérifiez que le service est en cours d'exécution avec la commande suivante:
- sudo systemctl status httpd
Vous verrez un actif
statut lorsque le service est en cours d'exécution:
Sortie
Redirection vers / bin / systemctl status httpd.service
● httpd.service - Le serveur HTTP Apache
Chargé: chargé (/usr/lib/systemd/system/httpd.service; activé; paramètre prédéfini par le fournisseur: désactivé)
Actif: actif (en cours d'exécution) depuis mer. 2019-02-20 01:29:08 UTC; Il y a 5s
Docs: man: httpd (8)
homme: apachectl (8)
PID principal: 1290 (httpd)
Statut: "Traitement des demandes…"
CGroup: /system.slice/httpd.service
901290 / usr / sbin / httpd -DFOREGROUND
911291 / usr / sbin / httpd -DFOREGROUND
921292 / usr / sbin / httpd -DFOREGROUND
931293 / usr / sbin / httpd -DFOREGROUND
941294 / usr / sbin / httpd -DFOREGROUND
951295 / usr / sbin / httpd -DFOREGROUND
…
Comme vous pouvez le constater à partir de cette sortie, le service semble avoir démarré correctement. Cependant, le meilleur moyen de tester cela consiste à demander une page à Apache.
Vous pouvez accéder à la page de destination Apache par défaut pour vérifier que le logiciel fonctionne correctement via votre adresse IP. Si vous ne connaissez pas l’adresse IP de votre serveur, vous pouvez l’obtenir de différentes manières à partir de la ligne de commande.
Tapez ceci à l’invite de commande de votre serveur:
Cette commande affiche toutes les adresses réseau de l’hôte, vous permettant ainsi de récupérer quelques adresses IP séparées par des espaces. Vous pouvez essayer chacun dans votre navigateur Web pour voir s'ils fonctionnent.
Alternativement, vous pouvez utiliser boucle
demander votre adresse IP à icanhazip.com
, qui vous donnera votre adresse IPv4 publique, vue depuis un autre emplacement sur Internet:
Lorsque vous avez l'adresse IP de votre serveur, entrez-la dans la barre d'adresse de votre navigateur:
http: //votre_serveur_ip
La page Web par défaut de Apache CentOS 7:
Cette page indique qu'Apache fonctionne correctement. Il contient également des informations de base sur les fichiers Apache importants et les emplacements de répertoires. Maintenant que le service est installé et fonctionne, vous pouvez maintenant utiliser différents systemctl
commandes pour gérer le service.
Étape 3 - Gestion du processus Apache
Maintenant que votre serveur Web est opérationnel, examinons quelques commandes de gestion de base.
Pour arrêter votre serveur Web, tapez:
- sudo systemctl stop httpd
Pour démarrer le serveur Web quand il est arrêté, tapez:
- sudo systemctl start httpd
Pour arrêter puis redémarrer le service, tapez:
- sudo systemctl redémarrer httpd
Si vous effectuez simplement des modifications de configuration, Apache peut souvent recharger sans perdre de connexions. Pour ce faire, utilisez cette commande:
- sudo systemctl recharger httpd
Par défaut, Apache est configuré pour démarrer automatiquement au démarrage du serveur. Si ce n'est pas ce que vous voulez, désactivez ce comportement en tapant:
- sudo systemctl désactiver httpd
Pour réactiver le service pour qu'il démarre au démarrage, tapez:
- sudo systemctl activer httpd
Apache va maintenant démarrer automatiquement quand le serveur redémarrera.
La configuration par défaut pour Apache permettra à votre serveur d’héberger un seul site Web. Si vous envisagez d'héberger plusieurs domaines sur votre serveur, vous devrez configurer des hôtes virtuels sur votre serveur Web Apache.
Étape 4 - Configuration des hôtes virtuels (recommandé)
Lorsque vous utilisez le serveur Web Apache, vous pouvez utiliser hôtes virtuels (similaire aux blocs de serveur dans Nginx) pour encapsuler les détails de la configuration et héberger plusieurs domaines à partir d’un seul serveur. Dans cette étape, vous allez configurer un domaine appelé exemple.com
, mais vous devriez le remplacer par votre propre nom de domaine. Pour en savoir plus sur la configuration d'un nom de domaine avec DigitalOcean, consultez notre Introduction au DNS de DigitalOcean.
Apache sur CentOS 7 possède un bloc de serveur activé par défaut, configuré pour servir les documents à partir du / var / www / html
annuaire. Bien que cela fonctionne bien pour un seul site, cela peut devenir lourd si vous hébergez plusieurs sites. Au lieu de modifier / var / www / html
, vous allez créer une structure de répertoire dans / var / www
pour le exemple.com
site, laissant / var / www / html
en place comme répertoire par défaut à servir si une demande du client ne correspond à aucun autre site.
Créer le html
répertoire pour exemple.com
comme suit, en utilisant le -p
flag pour créer les répertoires parents nécessaires:
- sudo mkdir -p / var / www /exemple.com/ html
Créez un répertoire supplémentaire pour stocker les fichiers journaux du site:
- sudo mkdir -p / var / www /exemple.com/bûche
Ensuite, attribuez la propriété du html
répertoire avec le $ USER
variable environnementale:
- sudo chown -R $ USER: $ USER / var / www /exemple.com/ html
Assurez-vous que les autorisations par défaut sont définies dans votre racine Web:
- sudo chmod -R 755 / var / www
Ensuite, créez un échantillon index.html
page utilisant vi
ou votre éditeur préféré:
- sudo vi / var / www /exemple.com/html/index.html
presse je
passer à INSÉRER
mode et ajoutez l'exemple HTML suivant au fichier:
/var/www/example.com/html/index.html
Bienvenue à Example.com!
Succès! le exemple.com l'hôte virtuel fonctionne!
Enregistrez et fermez le fichier en appuyant sur ESC
, en tapant : wq
et en appuyant sur ENTRER
.
Avec votre répertoire de site et votre exemple de fichier d'index, vous êtes presque prêt à créer les fichiers de l'hôte virtuel. Les fichiers d'hôte virtuel spécifient la configuration de vos sites distincts et indiquent au serveur Web Apache comment répondre aux différentes demandes de domaine.
Avant de créer vos hôtes virtuels, vous devez créer un sites disponibles
répertoire pour les stocker. Vous créerez également le activé pour les sites
répertoire qui indique à Apache qu'un hôte virtuel est prêt à être utilisé par les visiteurs. le activé pour les sites
répertoire contiendra des liens symboliques vers les hôtes virtuels que nous voulons publier. Créez les deux répertoires avec la commande suivante:
- sudo mkdir / etc / httpd / sites-available / etc / httpd / sites-enabled
Ensuite, vous direz à Apache de rechercher des hôtes virtuels dans la activé pour les sites
annuaire. Pour ce faire, éditez le fichier de configuration principal d’Apache et ajoutez une ligne déclarant un répertoire facultatif pour les fichiers de configuration supplémentaires:
- sudo vi /etc/httpd/conf/httpd.conf
Ajoutez cette ligne à la fin du fichier:
IncludeOptional sites-enabled / *. Conf
Enregistrez et fermez le fichier lorsque vous avez terminé d'ajouter cette ligne. Maintenant que vos répertoires d’hôte virtuel sont en place, vous allez créer votre fichier d’hôte virtuel.
Commencez par créer un nouveau fichier dans le sites disponibles
annuaire:
- sudo vi / etc / httpd / sites-available /exemple.com.conf
Ajoutez le bloc de configuration suivant et modifiez le exemple.com
domaine à votre nom de domaine:
/etc/httpd/sites-available/example.com.conf
Nom du serveur www.exemple.com
ServerAlias exemple.com
DocumentRoot / var / www /exemple.com/ html
ErrorLog / var / www /exemple.com/log/error.log
CustomLog / var / www /exemple.com/log/requests.log combinés
Cela indiquera à Apache où trouver directement la racine contenant les documents Web accessibles au public. Il indique également à Apache où stocker les journaux d'erreurs et de demandes pour ce site particulier.
Enregistrez et fermez le fichier lorsque vous avez terminé.
Maintenant que vous avez créé les fichiers de l'hôte virtuel, vous allez les activer pour qu'Apache sache les servir aux visiteurs. Pour ce faire, créez un lien symbolique pour chaque hôte virtuel de la activé pour les sites
annuaire:
- sudo ln -s / etc / httpd / sites-available /exemple.com.conf / etc / httpd / sites-enabled /exemple.com.conf
Votre hôte virtuel est maintenant configuré et prêt à servir du contenu. Avant de redémarrer le service Apache, vérifions que SELinux a mis en place les stratégies appropriées pour vos hôtes virtuels.
Étape 5 - Réglage des autorisations SELinux pour les hôtes virtuels (recommandé)
SELinux est configuré pour fonctionner avec la configuration Apache par défaut. Puisque vous avez configuré un répertoire de journal personnalisé dans le fichier de configuration des hôtes virtuels, vous recevrez une erreur si vous essayez de démarrer le service Apache. Pour résoudre ce problème, vous devez mettre à jour les stratégies SELinux afin de permettre à Apache d'écrire dans les fichiers nécessaires. SELinux apporte une sécurité accrue à votre environnement CentOS 7, il est donc déconseillé de désactiver complètement le module du noyau.
Il existe différentes façons de définir des stratégies en fonction des besoins de votre environnement, car SELinux vous permet de personnaliser votre niveau de sécurité. Cette étape couvrira deux méthodes d'ajustement des stratégies Apache: universellement et sur un répertoire spécifique. L'ajustement des politiques sur les annuaires est plus sécurisé et constitue donc l'approche recommandée.
Ajustement universel des stratégies Apache
La définition universelle de la stratégie Apache indiquera à SELinux de traiter tous les processus Apache de manière identique à l’aide de la commande httpd_unified
booléen. Bien que cette approche soit plus pratique, elle ne vous donnera pas le même niveau de contrôle qu'une approche centrée sur une stratégie de fichier ou de répertoire.
Exécutez la commande suivante pour définir une stratégie Apache universelle:
- sudo setsebool -P httpd_unified 1
le setsebool
La commande change les valeurs booléennes SELinux. le -P
flag mettra à jour la valeur de démarrage, faisant en sorte que cette modification persiste lors des redémarrages. httpd_unified
est le booléen qui indiquera à SELinux de traiter tous les processus Apache comme du même type. Vous l'avez donc activé avec la valeur 1
.
Ajustement des stratégies Apache sur un répertoire
Définition individuelle des autorisations SELinux pour le / var / www /exemple.com/bûche
répertoire vous donnera plus de contrôle sur vos politiques Apache, mais peut également nécessiter plus de maintenance. Étant donné que cette option ne définit pas de manière universelle les stratégies, vous devrez définir manuellement le type de contexte pour tous les nouveaux répertoires de journal spécifiés dans vos configurations d'hôte virtuel.
Tout d’abord, vérifiez le type de contexte que SELinux a donné à / var / www /exemple.com/bûche
annuaire:
- sudo ls -dZ / var / www /exemple.com/bûche/
Cette commande répertorie et affiche le contexte SELinux du répertoire. Vous verrez une sortie semblable à celle-ci:
Sortie
drwxr-xr-x. root root unconfined_u: object_r:httpd_sys_content_t: s0 / var / www /exemple.com/bûche/
Le contexte actuel est httpd_sys_content_t
, qui indique à SELinux que le processus Apache ne peut lire que les fichiers créés dans ce répertoire. Dans ce tutoriel, vous allez changer le type de contexte du / var / www /exemple.com/bûche
répertoire à httpd_log_t
. Ce type permettra à Apache de générer et d’ajouter aux fichiers journaux des applications Web:
- sudo semanage fcontext -a -t httpd_log_t "/ var / www /exemple.com/bûche(/.*)?"
Ensuite, utilisez le restauration
commande pour appliquer ces modifications et les conserver lors des redémarrages:
- sudo restorecon -R -v / var / www /exemple.com/bûche
le -R
flag exécute cette commande de manière récursive, ce qui signifie que les fichiers existants seront mis à jour pour utiliser le nouveau contexte. le -v
flag imprimera le contexte change la commande. Vous verrez la sortie suivante confirmant les modifications:
Sortie
restorecon reset /var/www/example.com/log context unconfined_u: object_r:httpd_sys_content_t: s0-> unconfined_u: object_r:httpd_log_t: s0
Vous pouvez lister les contextes une fois de plus pour voir les changements:
- sudo ls -dZ / var / www /exemple.com/bûche/
La sortie reflète le type de contexte mis à jour:
Sortie
drwxr-xr-x. root root unconfined_u: object_r:httpd_log_t: s0 / var / www /exemple.com/bûche
Maintenant que le / var / www /exemple.com/bûche
répertoire utilise le httpd_log_t
tapez, vous êtes prêt à tester votre configuration d’hôte virtuel.
Étape 6 - Test de l'hôte virtuel (recommandé)
Une fois que le contexte SELinux a été mis à jour avec l’une ou l’autre méthode, Apache pourra écrire dans le / var / www /exemple.com/bûche
annuaire. Vous pouvez maintenant redémarrer avec succès le service Apache:
- sudo systemctl redémarrer httpd
Lister le contenu de la / var / www /exemple.com/bûche
répertoire pour voir si Apache a créé les fichiers journaux:
- ls-lZ / var / www /exemple.com/bûche
Vous verrez qu'Apache a pu créer le error.log
et requests.log
fichiers spécifiés dans la configuration de l'hôte virtuel:
Sortie
-rw-r - r--. 1 racine racine 0 26 février 22:54 error.log
-rw-r - r--. 1 racine racine 0 février 26 22:54 requests.log
Maintenant que vous avez configuré votre hôte virtuel et mis à jour les autorisations SELinux, Apache va maintenant servir votre nom de domaine. Vous pouvez tester cela en allant à http: //exemple.com
, où vous devriez voir quelque chose comme ceci:
Cela confirme que votre hôte virtuel est correctement configuré et que le contenu est servi. Répétez les étapes 4 et 5 pour créer de nouveaux hôtes virtuels avec les autorisations SELinux pour des domaines supplémentaires.
Conclusion
Dans ce tutoriel, vous avez installé et géré le serveur Web Apache. Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu que vous pouvez servir et les technologies que vous pouvez utiliser pour créer une expérience plus riche.
Si vous souhaitez créer une pile d’applications plus complète, consultez cet article pour savoir comment configurer une pile LAMP sous CentOS 7.
Commentaires
Laisser un commentaire