Chapitre 2. Installer un serveur Web (apache)

Table des mati�res
1. Pr�-requis th�orique
2. Description
3. Installation
4. Configuration
4.1. Fichier de configuration
4.2. Modifier l'emplacement des fichiers de mon serveur Apache
4.3. Mettre un r�pertoire Web pour chaque utilisateur
4.4. Prendre en compte les modifications
4.5. Reconfigurer
5. Utilisation
5.1. Acc�der au site Web de votre machine :
5.2. Acc�der au site personnel d'un utilisateur :
6. D�sinstallation
7. Annexe : fichier de configuration

Tableau 2-1. Evolution de cet article

DateAjout(s) / Modification(s)
09 mai 2003Version initiale.
12 juillet 2003Corrections d'erreurs dans l'annexe suite au mail de Spike LEE
27 octobre 2003Relecture.

1. Pr�-requis th�orique

1.1. Qu'est-ce qu'un serveur web ?

Un serveur web est un logiciel permettant � des clients d'acc�der � des pages web, c'est-�-dire en r�alit� des fichiers au format HTML � partir d'un navigateur (aussi appel� browser) install� sur leur ordinateur distant.

Un serveur web est donc un <<�simple�>> logiciel capable d'interpr�ter les requ�tes HTTP arrivant sur le port associ� au protocole HTTP (par d�faut le port 80), et de fournir une r�ponse avec ce m�me protocole.

2. Description

Apache est le serveur le plus r�pandu sur Internet. Il s'agit d'une application fonctionnant � la base sur les syst�mes d'exploitation de type Unix, mais il a d�sormais �t� port� sur de nombreux autres syst�mes.

3. Installation

Nous allons installer le paquet phpmyadmin qui contient :

# apt-get install phpmyadmin

Une fois le paquet install�, vous devez r�pondre aux questions suivantes:

Tableau 2-2. apt-get install phpmyadmin

Nom du paquetQuestionR�ponse � choisir
phpmyadminWhich web server would you like to reconfigure automatically ?Apache
php4Do you want me to run the apacheconfig script now ?n
mysqlDo you want me to add it now ?y

4. Configuration

4.1. Fichier de configuration

Le fichier de configuration est /etc/apache/httpd.conf.

ImportantTout configurer !
 

Le fichier de configuration /etc/apache/httpd.conf qui est donn� en annexe � cette page contient les commentaires n�cessaires pour sa comprenhension. Cependant voici quelques points de la configuration de votre serveur sur lequels j'attire votre attention.

4.2. Modifier l'emplacement des fichiers de mon serveur Apache

Par d�faut, la racine de votre serveur Web se trouve dans le r�pertoire /var/www.

Si vous souhaitez modifier cet emplacement vous devez modifier la ligne DocumentRoot du fichier de configuration d'Apache /etc/apache/httpd.conf.

Cette ligne se trouve dans la section 2 du fichier de configuration.

### Section 2: 'Main' server configuration
...
DocumentRoot /var/www

4.3. Mettre un r�pertoire Web pour chaque utilisateur

Par d�faut c'est le r�pertoire public_html du r�pertoire personnel de l'utilisateur qui est accessible � partir de l'adresse http://localhost/~user. Ainsi si votre machine comporte un compte cedric ce dernier pourra stocker ses pages html dans le r�pertoire :

/home/cedric/public_html

4.4. Prendre en compte les modifications

Si vous apportez des modifications au fichier de configuration, vous devez red�marrer le service pour que les changements soient pris en compte

# /etc/init.d/apache reload

4.5. Reconfigurer

Si vous souhaitez reconfigurer votre paquet � l'aide de debconf ex�cutez la commande :

# dpkg-reconfigure phpmyadmin

5. Utilisation

5.1. Acc�der au site Web de votre machine :

http://localhost/

ImportantLe <<�/�>> est important
 

Si vous oublier le <<�/�>> � la fin de l'URL vous ne pourrez pas acc�der au site !

5.2. Acc�der au site personnel d'un utilisateur :

Pour acc�der au site de l'utilisateur toto (si cet utilisateur a un r�pertoire qui lui permet de publier des fichiers � cet effet) :

http://localhost/~toto/

6. D�sinstallation

# apt-get remove phpmyadmin

AstuceSupprimer toute trace du package pr�c�dement install�
 

Lorsque vous d�cidez de retirer un package de votre Debian GNU/Linux APT n'efface par les fichiers de configuration de ce package. Ceci permet de r�installer plus rapidement la package. Cependant si vous souhaitez faire table rase et ne plus entendre parler du package, vous pouvez ajouter l'option --purge lors de la suppression.
# apt-get remove --purge <package>

Si vous souhaitez retirer tous les composants qui ont �t� install�s par le paquet phpmadmin :

# apt-get remove apache apache-common libz2-1-0 libdc4.1 libexpat1 libmm13 libmysqlclient10 mine-support mysql-common php4 php4-mysql wwwconfig-common zlib1g

AstuceSupprimer toutes les d�pendances d'un package pr�cedement install�
 

Un package (p�re) a souvent besoin d'autres packages pour pouvoir fonctionner correctement. Ces nouveaux packages forment les d�pendances du package p�re. Cependant d'autres packages peuvent avoir des d�pendances similaires. Lorsque vous d�cidez de retirer tous les d�pendances d'un package de votre Debian GNU/Linux vous risquez de rendre votre syst�me instable. Pour ne pas avoir ce probl�me, v�rifiez que la commande APT n'efface pas d'autres packages que ceux que vous avez sp�cifi�. Comme dans l'exemple ci-dessous :
# apt-get remove apt
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  apt apt-utils base-config
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
  apt
0 packages upgraded, 0 newly installed, 3 to remove and 17  not upgraded.
Need to get 0B of archives. After unpacking 3183kB will be freed.
You are about to do something potentially harmful
To continue type in the phrase 'Yes, do as I say!'

7. Annexe : fichier de configuration

Voici un extrait comment� du fichier de configuration d'Apache /etc/apache/httpd.conf. Ne copiez-coller pas ce fichier � la place du v�tre car il est incomplet. Il est l� juste pour vous permettre d'en comprendre le contenu. Les symboles [...] indiquent qu'un morceau du fichier est manquant !

## httpd.conf -- Apache HTTP server configuration file
## Elements les plus importants � conna�tre du fichier de configuration
## Par C�dric Lignier ([email protected])
### Section 1: Environment global
#
# On configure ici le comportement du serveur Apache.
#
# ServerType :
#  * standalone : le serveur est autonomme
#  * inet : le serveur d�pend du service inetd
  ServerType standalone
# ServerRoot: Emplacement des fichiers de configuration, d'erreurs et
# des diff�rents journaux utilis�s par Apache.
  ServerRoot /etc/apache
# PidFile: Fichier qui contient le num�ro de processus li� au service
# apache lors celui ci d�marre
  PidFile /var/run/apache.pid
# Timeout: Nombre de secondes avant que le serveur envoie un message
# indiquant que le d�lai pour obtenir la page que vous avez demand� est
# d�pass�
  Timeout 300
# KeepAlive: 
#  * On : autorise les connexions persistantes. Une m�me
#         machine peut se connecter plusieurs fois sur le serveur.
#  * Off : n'autorise pas les connexions persistantes
#
  KeepAlive On
# MaxKeepAliveRequests: Nombre maximum de demandes durant une
# connexion persistante. Mettez 0 pour un nombre illimit� de
# demandes. Il est recommand� de garder une grande valeur pour ce param�tre.
  MaxKeepAliveRequests 100
# KeepAliveTimeout: Nombre de secondes a attendre pour la prochaine
# demande du m�me client sur la m�me connexion.
  KeepAliveTimeout 15
# Apache lance plusieurs copies de son serveur. (plusieurs processus).
# Apache adapte dynamiquement le nombre de processus en fonction de la
# demande pour obtenir les meilleures performances.
# Apache fait cela en effectuant des tests p�riodiques pour conna�tre
# le nombre de serveurs qui sont en attente d'une requete. 
#  * Si il y en a moins que MinSpareServers, Apache en rajoute.
#  * Si il y en a plus que MaxSpareServers Apache en d�truit.
# Les valeurs par d�faut doivent convenir pour la plupart des sites.
  MinSpareServers 5
  MaxSpareServers 10
# Nombre de serveurs � lancer au d�marrage d'Apache
  StartServers 5
# Limite le nombre de clients qui peuvent se connecter en m�me
# temps. C'est �galement le nombre de serveurs qui tournent sur la
# machine.
  MaxClients 150
# MaxRequestsPerChild: Nombre de demandes que chaque processus fils
# (cr�e par le processus Apache p�re) peut traiter avant que le
# processus fils ne soit d�truit par le processus p�re
  MaxRequestsPerChild 100
# Listen: Autorise Apache � �couter d'autres adresses IP ou d'autres 
# port que le port et l'adresse IP par d�faut.
  #Listen 3000
  #Listen 12.34.56.78:80
# Liste des modules � charger pour �tre utilis�s avec le serveur Apache
  # LoadModule <module_name> <chemein_du_module>
  LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
# ExtendedStatus:
#  * On : donne des informations d�taill�es sur le serveur
#  * Off : donne des informations de bases sur le serveur
# Lorsque l'on demande des informations sur le serveur Apache.
# La valeur par d�faut est "Off"
<IfModule mod_status.c>
  ExtendedStatus On
<IfModule>
### Section 2: Configuration principale du serveur
#
#
# Port: Port sur lequel le serveur Apache �coute.
# Si le port est < 1023, Apache doit �tre execut� en tant que root
  Port 80
# User/Group : nom (ou nombre) de l'utilisateur/groupe sur lequel on
# doit �xecuter le serveur Apache.
  User www-data
  Group www-data
# ServerAdmin: Adresse e-mail de la personne � contacter en cas de
# probl�mes avec le serveur. Cette adresse apparait en particulier sur
# les pages d'erreurs g�n�r�es par le serveur Apache.
  ServerAdmin webmaster@LINDEBIAN-SERVEUR
# ServerName: Adresse du serveur. C'est soit un adresse DNS ou
# l'adresse IP de votre machine le cas �ch�ant.
  ServerName 192.168.0.1
# DocumentRoot: R�pertoire qui contient les documents du serveur Web
  DocumentRoot /var/www
[...]
# UserDir: Nom du r�pertoire dans le r�pertoire personnel de
# l'utilisateur dans lequel trouver son site personel.
# Ce site est disponible par l'adresse http://<serveur_IP>/~user
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>
# Permissions sur les r�pertoires personnels des utilisateurs contenant
# des pages Web.
# Ci-dessous un exemple o� les r�pertoires sont en lecture seule.
  <Directory /home/*/public_html>
      AllowOverride FileInfo AuthConfig Limit
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      <Limit GET POST OPTIONS PROPFIND>
          Order allow,deny
          Allow from all
      </Limit>
      <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
          Order deny,allow
          Deny from all
      </Limit>
  </Directory>
# DirectoryIndex: Nom des fichiers � regarder dans un r�pertoire et
# consid�r�s comme des pages HTML.
  <IfModule mod_dir.c>
      DirectoryIndex index.html index.php index.htm index.shtml index.cgi
  </IfModule>
# AccessFileName: Nom du fichier qui contient pour chaque r�pertoire
# les informations de restriction sur ce dernier.
  AccessFileName .htaccess
# Les lignes suivantes permettent d'interdire la consultation des
# fichier de permissions sur les r�pertoires (les fameux .htaccess)
# Si vous souhaitez que l'on puisse acc�der � ces fichiers, vous devez
# d�commenter les lignes ci-dessous
# Prot�gent �galement les fichiers de mots de passe (.htpasswd)
  <Files ~ "^\.ht">
      Order allow,deny
      Deny from all
  </Files>
# UseCanonicalName:
#  * On : Lorsque l'on clique sur un lien et que le serveur
#         doit d�livrer l'adresse de ce lien, l'adresse est construite � partir
#         de nom du serveur et n'ont pas � partir de l'adresse d'appel de la
#         page (cf. adresse de redirection)
#  * Off : Desactive cette fonction.
  UseCanonicalName On
[...]
# HostnameLookups:
#  * On : enregistre la trace du client pas son nom (www.apache.ord)
#  * Off : enregistre la trace du client par son adresse IP
#          (204.62.129.132)
  HostnameLookups Off
# ErrorLog: Emplacement du journal d'erreur.
  ErrorLog /var/log/apache/error.log
# LogLevel: Niveau de message stock� dans le journal d'erreur.
# Les valeurs possibles sont : debug, info, notice, warn, error, crit,
# alert et emerg.
  LogLevel warn
[...]
# ServerSignature
#  * On : Indique qu'il faut afficher une ligne concernant le serveur (sa
#         version, l'adresse email de l'administrateur ServerAdmin...)
#         en bas des pages
#  * Off : desactive cette fonction
  ServerSignature On