Serveur Apache

Les documentations du serveur HTTP Apache sont disponibles ici. Durant ce TP (2 séances), vous allez installer un serveur sur votre machine, qui tournera sur le port 8080.

La première chose à faire est de récupérer le programme et de mettre un bookmark sur les documentations du serveur. Vous êtes donc dans les conditions réelles d'utilisation.

Voici le mode opératoire pour désarchiver et compiler le programme :

  1. Créez dans le /tmp de la machine locale, un répertoire destiné à la compilation d'Apache. Par exemple

    mkdir /tmp/distrib_apache
    

  2. Copier la distribution source d'apache (le fichier httpd-2.2.25.tar.gz) dans ce directory. Désarchivez-le :

    tar -xvzf  httpd-2.2.25.tar.gz

    Ceci doit créer un répertoire httpd-2.2.25
  3. Parcourez le fichier INSTALL (more INSTALL) qui contient toutes les indications pour compiler et installer apache. Ne faites rien pour le moment, pour éviter toute bêtises, nous vous avons écrit les commandes qu'il faut lancer dans les points suivants.
  4. Sans changer de répertoire, créez (sur votre compte !) un répertoire $HOME/installation_apache
  5. Générez les makefiles : tapez la commande
    ./configure --prefix=$HOME/installation_apache  --enable-modules=all -enable-ssl

    L'option --prefix permet d'indiquer le répertoire d'installation. Le reste indique que l'on souhaite utiliser autant de modules que possible.
  6. Tapez make puis make install pour compiler et installer les fichiers compilés dans le repertoire d'installation ($HOME/installation_apache). Si tout s'est bien passé, vous avez l'arborescence suivante :
Notes importantes pour la suite :
  • ATTENTION : cette procédure est très classique. En effet, il ne faut pas que les sources de votre serveur, c'est-à-dire la distribution que vous venez de détarer et de compiler (le fichier apachetar.Z décompressé) se trouve au même endroit que les binaires du serveur, ses fichiers de configuration, etc... (le répertoire $HOME/installation_apache). Le répertoire d'installation classique pour Apache est /usr/local/apache, mais pour pouvoir écrire dans ce répertoire il faudrait être root sur la machine (ce que sont en général les webmasters).
  • Dans la suite du TP, vous travaillerez principalement sur les fichiers de configuration se trouvant dans l'installation du serveur. Avant de poursuivre ce TP, vérifiez bien le contenu du répertoire $HOME/installation_apache.
  • Les fichiers d'erreur et de logs du serveur vous seront précieux pour débugger. La commande tail -f nom_de_fichier permet de lire un fichier en continu . Utilisez-la sur le fichier logs/error_log. Je vous conseille d'avoir en permanence un xterm exécutant la commande :

    tail -f $HOME/installation_apache/logs/error_log
    

  • Pour le moment, vous n'avez pas de fichier de log, ils apparaitront lorsque vous lancerez le serveur pour la première fois.
  • Pour lancer, stopper, faire relire les fichiers de configuration à votre serveur, tester la configuration, etc... la commande
    $HOME/installation_apache/bin/apachectl
    est là pour vous aider ! Elle accepte comme arguments start, stop, restart, configtest, etc...
Rappel : les fichiers de configuration se trouvent dans le repertoire conf de l'installation ($HOME/installation_apache/conf). Ce sont ces fichiers que vous aurez à modifier. Avant de les modifier, recopiez-les

Au travail : votre nouvel employeur vous a demandé d'installer un serveur qui vérifie les spécifications suivantes :

  1. Le serveur devra tourner sur le port 8080. Pensez à le lancer SUR VOTRE MACHINE LOCALE !
  2. La base de toute l'arborescence des documents doit être $HOME/installation_apache/htdocs/. Une requête sur votre serveur, sans préciser le nom d'un document doit renvoyer la home page de votre serveur située dans ce dir. La Home Page s'appelle par défaut index.html.
  3. Les logs et les fichiers de configuration doivent être dans $HOME/installation_apache/logs/ et $HOME/installation_apache/conf.
  4. Les accès seront dans $HOME/installation_apache/logs/acces.log, les erreurs dans $HOME/installation_apache/logs/erreur.log, les clients utilisés dans $HOME/installation_apache/logs/client.log.
  5. Le sous-directory $HOME/installation_apache/htdocs/private/my-machine/ ne pourra être accédé que par votre propre machine et aucune autre (voir "authentification", allow, deny, order, dans la doc) . Vous pourrez soit créer un fichier .htaccess contenant les autorisations (recommandé), soit mettre ces autorisations entre <DIRECTORY>...</DIRECTORY> dans le fichier httpd.conf. Solution recommandée : avec le fichier .htaccess. regardez l'exemple ci-dessous.
  6. Le sous-directory $HOME/installation_apache/htdocs/private/me/ ne pourra être accédé que par vous (avec mot de passe, donc "authentification", voir AuthUserFile). Vous pourrez utiliser le programme htpasswd pour générer des mots de passe.

    Exemple de fichier .htaccess :