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

Configuration d'Apache

System Administration and Networking · PDF · 15 pages

Afficher l'aperçu du document

Consulter le document original →

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/*.conf pour 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.html et index.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_log au format combined.
  • 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é :

  1. Décommentez la ligne NameVirtualHost *:80 dans httpd.conf et remplacez * par l'adresse IP du serveur.
  2. Décommentez et personnalisez le conteneur <VirtualHost *:80> ... </VirtualHost> en remplaçant * par l'adresse IP, et en configurant ServerName, DocumentRoot, ErrorLog et CustomLog.
  3. 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.conf est 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 +ExecCGI et 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 Listen lors 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.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions