Installer un serveur Web (Apache)

Pré-requis théorique

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.

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.

Le serveur Apache existe aujourd'hui sous deux branches : la 2.0 (sortie en 2002) et la 1.3 (sortie en 2000). La version 1.3 n'est aujourd'hui plus développée mais des correctifs de sécurité lui sont régulièrement appliqués.

Les principales améliorations apportées par la version 2.0 sont :

  • le support des processus légers (threads) pour les systèmes Unix/Linux
  • une compatibilité et une stabilité accrue sur les systèmes non Unix
  • une toute nouvelle API permettant une meilleure cohabitation des modules

Installation

Nous allons, tout d'abord, installer le serveur web Apache dans sa version 1.3.xy (actuellement 1.3.33) puis la version 2.0.xy (actuellement 2.0.54).

Version 1.3.xy

Installons le paquet apache qui installera tout simplement notre serveur.

# apt-get install apache

Lors de l'installation vous devez répondre à la question suivante :

apt-get install apache
Nom du paquet Question Réponse à choisir (défaut)
apache Faut-il activer “suExec” ? Oui (Non)

Version 2.0.xy

La procédure d'installation du serveur Apache 2.0.xy est identique à celle indiquée pour la version 1.3.xy du serveur à ceci près qu'il s'agit du paquet apache2.

# apt-get install apache2

Configuration

Nous allons maintenant voir quelques points de configuration de notre serveur.

Version 1.3.xy

Fichier de configuration

Pour la version 1.3.xy d'Apache le fichier de configuration est /etc/apache/httpd.conf. Le fichier étant très bien commenté vous y trouverez bon nombre d'informations.

Emplacement des fichiers du serveur Apache 1.3

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 les lignes “DocumentRoot” et ”<Directory /var/www/>” de la section 2 ( ### Section 2: 'Main' server configuration ) du fichier de configuration d'Apache (/etc/apache/httpd.conf), en les adaptant à l'emplacement désiré.

278 - # DocumentRoot: The directory out of which you will serve your
279 - # documents. By default, all requests are taken from this directory, but
280 - # symbolic links and aliases may be used to point to other locations.
281 - #
282 - DocumentRoot /var/www
[ ... ]
304 - #
305 - # This should be changed to whatever you set DocumentRoot to.
306 - #
307 - <Directory /var/www/>

Si vous voulez placer la racine de votre serveur dans un répertoire /www vous obtiendrez ainsi :

278 - # DocumentRoot: The directory out of which you will serve your
279 - # documents. By default, all requests are taken from this directory, but
280 - # symbolic links and aliases may be used to point to other locations.
281 - #
282 - DocumentRoot /www
[ ... ]
304 - #
305 - # This should be changed to whatever you set DocumentRoot to.
306 - #
307 - <Directory /www/>

Créer un répertoire Web pour chaque utilisateur

La configuration par défaut d'Apache vous permet d'offrir à vos utilisateurs un espace pour leur pages personnelles. Ils doivent pour cela créer un répertoire public_html dans leur répertoire personnel. Leurs pages personnelles seront alors accessible depuis l'adresse http://localhost/~user/. Ainsi si votre machine comporte un compte toto ce dernier pourra stocker ses pages html dans le répertoire :

/home/toto/public_html

Prise en compte des modifications

Pour que les modification que vous avez apportées au fichier de configuration soient prises en compte vous devez redémarrer votre serveur. Pour cela, il vous faut taper :

# invoke-rc.d apache reload

Reconfiguration

Vous pouvez reconfigurer votre paquet à l'aide de debconf. Il vous suffit d'utiliser la commande suivante :

# dpkg-reconfigure apache

Debconf vous posera alors quelques questions concernant la configuration générale du serveur.

Version 2.0.xy

Fichier de configuration

La configuration d'Apache est désormais répartie dans différents fichiers situés dans /etc/apache2/. Le fichier de configuration principale du serveur est /etc/apache2/apache2.conf. Ce fichier inclut des directives de configuration provenant d'autres fichiers de configuration par des clauses “Includes”.

Dans cette nouvelle version d'Apache la configuration des sites Web virtuels est déportée dans le répertoire /etc/apache2/sites-available/ qui contient un fichier de configuration par site virtuel. Ce répertoire contient les sites virtuels disponibles. Pour rendre accessible un site il suffit alors de créer un lien symbolique dans le répertoire /etc/apache2/sites-enabled/ pointant vers le fichier de configuration adéquat se trouvant dans le répertoire /etc/apache2/sites-available/.

Par défaut Apache propose un site virtuel dont le fichier de configuration est /etc/apache2/sites-available/default. C'est ce fichier que nous allons modifier.

Emplacement des fichiers du serveur Apache 2.0

Comme pour la version 1.3 d'Apache, la racine de votre serveur Web se trouve dans le répertoire /var/www. Si vous souhaitez modifier cet emplacement vous devez modifier les lignes “DocumentRoot” et ”<Directory /var/www/>” ainsi que commenter ( mettre un # devant ) la ligne ”RedirectMatch ^/$ /apache2-default/” du fichier /etc/apache2/sites-available/default. Ces lignes se trouvent au début du fichier de configuration.

Reportez-vous à la section Emplacement des fichiers du serveur Apache 1.3, ci-dessus, pour voir comment procéder.

Si vous ne commentez pas la ligne :

RedirectMatch ^/$ /apache2-default/

Votre serveur Apache affichera une erreur lorsque vous essaierez d'accéder à votre site. En effet, cette ligne permet de rediriger la racine de votre site vers le répertoire apache2-default situé dans le répertoire définit par la variable DocumentRoot.

Créer un répertoire Web pour chaque utilisateur

Il faut activer la gestion des répertoires web personnels dans le serveur. Le fichier /etc/apache2/apache2.conf doit alors être édité. Vous devez donc décommenter (retirer le symbole # situé au début de chaque ligne) les lignes suivantes (n° 205 et 206 du fichier ) :

204 - # UserDir is now a module
205 - #UserDir public_html
206 - #UserDir disabled root

La commande UserDir public_html permet d'indiquer que le répertoire public_html du répertoire personnel de l'utilisateur sera accessible à partir de l'adresse http://localhost/~user/.

La commande UserDir disabled root est une sécurité concernant le compte de l'utilisateur root empêchant un accès à partir de l'adresse http://localhost/~user/.

En décommentant les lignes suivantes :

208 - #<Directory /home/*/public_html\>
209 - # AllowOverride FileInfo AuthConfig Limit
210 - # Options Indexes SymLinksIfOwnerMatch IncludesNoExec
211 - #</Directory>

Vous fixez des options et des droits sur le “répertoire web” de vos utilisateurs.

Comme expliqué dans la partie traitant de la version 1.3.xy d'Apache, l'utilisateur toto dont le répertoire personnel est /home/toto/ pourra stocker ses pages dans le répertoire :

/home/toto/public_html

Prise en compte des modifications

En apportant des modifications au fichier de configuration il vous faut, comme expliqué plus haut, redémarrer le serveur pour que les changements soient pris en compte :

# invoke-rc.d apache2 reload

Reconfiguration

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

# dpkg-reconfigure apache2

Et debconf vous posera alors des questions concernant la configuration générale du serveur.

Utilisation du serveur

Comment accéder au site Web de votre machine ?

Par l'adresse : http://localhost/

Comment accéder au site personnel d'un utilisateur ?

L'accès au site de l'utilisateur toto (si cet utilisateur a un répertoire qui lui permet de publier des fichiers à cet effet) se fait à l'adresse : http://localhost/~toto/

Désinstallation du serveur

# apt-get remove apache

ou bien

# apt-get remove apache2

Pour retirer tous les composants qui ont été installés par le paquet apache ou apache2 ainsi que les fichiers de configuration (option –purge) exécutez une des commandes suivantes :

# apt-get remove --purge apache apache-common apache2-utils libapr0

ou, si vous avez installé Apache 2

# apt-get remove --purge apache2 apache2-common apache2-mpm-worker apache2-utils libapr0 openssl ssl-cert

Conclusion

Nous voici donc avec un serveur Web Apache fonctionnel. Nous verrons par la suite comment lui ajouter la possibilité de gérer des pages PHP.

 
web/installer-un-serveur-web-apache.txt · Dernière modification: 11/12/2010 18:22 par orgrim