Configuration d'Apache
Ce laboratoire porte sur la configuration du serveur HTTP Apache version 2.0. Il permet d'apprendre à gérer les paramètres essentiels d'Apache, à identifier les modules clés, à configurer les CGI et à mettre en place des serveurs virtuels.
D'après le document Configuration d'Apache
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
System Administration and Networking · PDF · 15 pages
Afficher l'aperçu du document
Ce laboratoire porte sur la configuration du serveur HTTP Apache version 2.0. Il permet d'apprendre à gérer les paramètres essentiels d'Apache, à identifier les modules clés, à configurer les CGI et à mettre en place des serveurs virtuels. Pour réaliser ce TP, il est nécessaire d'avoir un système Linux avec Apache 2.0 installé ainsi que les droits super-utilisateur pour démarrer, arrêter et modifier la configuration du serveur.
Objectifs
- Définir les fonctions majeures du serveur HTTP Apache 2.0
- Appliquer la configuration des paramètres importants d'Apache
- Identifier la configuration dossier par dossier
- Identifier les CGI avec Apache
- Identifier les modules clés
- Appliquer l'implémentation des serveurs virtuels
Prérequis et configuration
- Un système Linux avec Apache HTTP Server version 2.0 installé
- Les paquetages nécessaires : httpd, httpd-devel, httpd-manual
- Accès super-utilisateur pour gérer le service Apache
- Connaissances de base en administration système Linux
Démarrage et arrêt du serveur Apache
Le serveur Apache est contrôlé via le script /etc/init.d/httpd accessible avec la commande /sbin/service. Pour démarrer, arrêter, redémarrer ou recharger la configuration du serveur, utilisez les commandes suivantes en super-utilisateur :
/sbin/service httpd start
/sbin/service httpd stop
/sbin/service httpd restart
/sbin/service httpd reload
Le redémarrage (restart) arrête puis relance le serveur, tandis que le rechargement (reload) applique les modifications du fichier de configuration sans arrêter le serveur. Notez que pour un serveur sécurisé, un mot de passe est demandé lors du démarrage ou du redémarrage, mais pas lors du rechargement.
Pour que le service Apache se lance automatiquement au démarrage du système, utilisez un utilitaire comme /sbin/chkconfig ou /sbin/ntsysv pour activer le service.
Configuration générale dans httpd.conf
Le fichier principal de configuration est /etc/httpd/conf/httpd.conf. Avant toute modification, créez une copie de sauvegarde :
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
Après modification, rechargez la configuration avec /sbin/service httpd reload. En cas d'erreur, vérifiez les modifications et consultez le journal d'erreurs :
tail /var/log/httpd/error_log
Directives importantes à connaître
- ServerRoot : répertoire racine du serveur, par défaut
/etc/httpd. - PidFile : fichier contenant l'identifiant du processus Apache, par défaut
/var/run/httpd.pid. - Timeout : durée d'attente en secondes pour les communications, par défaut 300.
- KeepAlive : active ou non les connexions persistantes (plus d'une requête par connexion). Par défaut
off. - MaxKeepAliveRequests : nombre maximal de requêtes par connexion persistante, par défaut 100.
- KeepAliveTimeout : temps d'attente en secondes avant fermeture d'une connexion persistante, par défaut 15.
- Listen : ports et adresses IP sur lesquels Apache écoute, par défaut port 80 pour HTTP et 443 pour HTTPS.
- Include : permet d'inclure d'autres fichiers de configuration, par exemple
Include conf.d/*.confpour charger les modules. - LoadModule : charge les modules DSO (Dynamic Shared Object).
- SuexecUserGroup : définit les privilèges d'exécution des programmes CGI (utilisateur et groupe).
- User et Group : utilisateur et groupe sous lesquels tourne Apache, par défaut
apache. Ces directives sont supprimées dans la configuration des hôtes virtuels. - ServerAdmin : adresse email de l'administrateur, affichée dans les messages d'erreur, par défaut
root@localhost. - ServerName : nom d'hôte et port du serveur, par exemple
ServerName www.example.com:80. Doit être un nom de domaine valide. - DocumentRoot : répertoire contenant les fichiers HTML servis, par défaut
/var/www/html. - Directory : conteneur de directives appliquées à un répertoire donné. Exemple pour autoriser l'exécution CGI dans un répertoire :
<Directory /home/my_cgi_directory>
Options +ExecCGI
</Directory>
Il faut également décommenter la directive AddHandler pour les fichiers .cgi et définir les permissions à 0755 sur les scripts et leur chemin.
- Options : contrôle les fonctionnalités disponibles dans un répertoire (ex.
Indexes,FollowSymLinks,ExecCGI). - AllowOverride : autorise ou non les fichiers
.htaccessà modifier la configuration. Par défaut, aucune annulation n'est permise. - UserDir : sous-répertoire dans le répertoire personnel des utilisateurs pour leurs fichiers HTML personnels, par défaut désactivé (
disable). - DirectoryIndex : page par défaut servie lorsqu'un répertoire est demandé, par défaut
index.htmletindex.html.var. - ErrorLog : fichier des erreurs, par défaut
/var/log/httpd/error_log. - LogLevel : niveau de détail des logs d'erreur, par défaut
warn. - CustomLog : fichier et format des logs d'accès, par défaut
/var/log/httpd/access_logau formatcombined. - Alias : permet d'accéder à des répertoires en dehors de DocumentRoot.
- ScriptAlias : définit le répertoire des scripts CGI, par défaut
/var/www/cgi-bin/. - Redirect : redirige une ancienne URL vers une nouvelle.
- NameVirtualHost : active l'hébergement virtuel basé sur le nom en associant une adresse IP et un port.
- VirtualHost : conteneur pour définir un hôte virtuel avec ses propres directives.
Configuration des hôtes virtuels
Les hôtes virtuels permettent à un même serveur de fournir différents sites selon l'adresse IP, le nom d'hôte ou le port de la requête. Pour configurer un hôte virtuel nommé :
- Décommentez la ligne
NameVirtualHost *:80danshttpd.confet remplacez*par l'adresse IP du serveur. - Décommentez et personnalisez le conteneur
<VirtualHost *:80> ... </VirtualHost>en remplaçant*par l'adresse IP, et en configurantServerName,DocumentRoot,ErrorLogetCustomLog. - Rechargez ou redémarrez Apache pour appliquer la configuration.
Exemple d'hôte virtuel :
#NameVirtualHost *:80
#
#<VirtualHost *:80>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
Si un hôte virtuel écoute sur un port autre que 80, ajoutez ce port à la directive Listen dans la configuration globale.
Hôte virtuel pour serveur Web sécurisé
Apache peut fonctionner simultanément comme serveur non sécurisé (port 80) et sécurisé (port 443). Les deux utilisent la même adresse IP et nom d'hôte, mais écoutent des ports différents. Le serveur sécurisé utilise SSL et consomme plus de ressources, ce qui peut réduire le nombre de pages servies par seconde.
Important : N'utilisez pas d'hôtes virtuels nommés avec un serveur sécurisé car SSL intervient avant l'identification de l'hôte virtuel nommé. Pour un serveur sécurisé, utilisez des hôtes virtuels basés sur l'adresse IP.
La configuration du serveur sécurisé se trouve dans /etc/httpd/conf.d/ssl.conf. Par défaut, le DocumentRoot est le même que pour le serveur non sécurisé, mais il est recommandé d'en définir un différent.
Pour désactiver le serveur non sécurisé, commentez la ligne Listen 80 dans httpd.conf :
#Listen 80
Résultats attendus
- Le serveur Apache démarre, s'arrête et se recharge correctement via les commandes
/sbin/service httpd. - La configuration modifiée dans
httpd.confest prise en compte sans erreur après rechargement. - Les scripts CGI sont reconnus et exécutés dans les répertoires configurés avec
Options +ExecCGIet permissions 0755. - Les hôtes virtuels répondent correctement selon le nom d'hôte ou l'adresse IP configurée.
- Le serveur sécurisé écoute sur le port 443 et fonctionne indépendamment du serveur non sécurisé.
- Les fichiers journaux d'erreurs et d'accès sont correctement créés et contiennent les informations attendues.
Pièges courants
- Ne pas faire de sauvegarde avant modification du fichier
httpd.conf, rendant difficile la restauration en cas d'erreur. - Oublier de recharger ou redémarrer Apache après modification de la configuration.
- Permissions incorrectes sur les scripts CGI ou leurs répertoires empêchant leur exécution.
- Utiliser des hôtes virtuels nommés avec un serveur sécurisé, ce qui ne fonctionne pas à cause du protocole SSL.
- Ne pas ajouter un port personnalisé à la directive
Listenlors de la configuration d'un hôte virtuel écoutant sur ce port. - Ne pas vérifier les journaux d'erreurs en cas de problème, ce qui empêche d'identifier la cause des erreurs.
- Configurer un ServerName qui n'est pas un nom de domaine valide ou non résolu par le système.
Commentaires
Aucun commentaire pour le moment. Posez la première question.