Configuration Apache
Pièces détachées Forum Contact

Configuration Apache

Nous rachetons vos PC portables (et MAC) HS
Administrateur

Configuration Apache

Les fichiers de configuration

Note : La description des fichiers et répertoires liés à la configuration d’Apache est disponible dans le fichier /etc/apache2/README.

Toute modification d’un fichier de configuration ou le chargement/déchargement d’un module nécessite la relecture de la configuration, ceci peut-être obtenu par la commande :

sudo /etc/init.d/apache2 force-reload

De part sa conception, le serveur Apache répartit sa configuration dans un certain nombre de fichiers et répertoires que nous aborderons ici.

-  apache2.conf : Il s’agit du fichier principal de configuration d’Apache.

-  envvars : Ce fichier sert à définir les variables d’environnement du serveur. Par défaut ce fichier est vide. Mis à part quelques rares cas précis vous n’aurez pas à modifier celui-ci.

-  httpd.conf : Ce fichier est présent afin de maintenir la compatibilité avec des applications plus anciennes. Il n’est plus utilisé avec la version actuelle d’Apache.

-  magic : Il s’agit du fichier de configuration du module mod_magic_mime qui définit le comportement du serveur vis à vis de certains fichiers.

-  ports.conf : C’est dans ce fichier que sont définis les ports d’écoute du serveur. Par défaut un serveur web écoute les requêtes sur le port 80, ce qui est modifiable en éditant ce fichier

-  conf.d/ : Ce répertoire contient les "extensions" du fichiers apache2.conf. Dans ce répertoire nous pourrons créer des fichiers qui nous éviteront de modifier directement le fichier apache2.conf.

-  mods-available/ : Ce répertoire contient les fichiers de configuration des modules d’Apache disponibles (mais pas necessairement activés).

-  mods-enabled/ : Ce répertoire contient des liens vers les fichiers de configuration des modules d’Apache activés situées dans mods-available.

-  sites-available/ : Ce répertoire fonctionne sur le même principe que les modules dans mods-available, mais cette fois ci concerne la configuration des sites disponibles sur le serveur

-  sites-enabled/ : Ce répertoire contient des liens vers les fichiers de configuration des sites activés situées dans sites-available

-  ssl/ : Contient la configuration d’Apache liée à SSL

Paramètres du fichier apache2.conf

Le paramètrage global du serveur web se fait par le biais du fichier apache2.conf ainsi que par les fichiers présents dans le dossier /etc/apache2/conf.d/. En effet, si vous ne souhaitez pas modifier directement le fichier principal de configuration, vous pouvez créer un fichier dans ce dossier. Celui-ci est alors automatiquement pris en compte par la directive Include présente dans le fichier apache2.conf.

Voici quelques directives que vous pouvez placer dans le fichier apache2.conf

ServerRoot : définit l’emplacement des fichiers de configuration du serveur.

exemple :

ServerRoot "/etc/apache2"
ServerName : définit le nom complet du serveur

exemple :

Servername www.monserveur.org
ServerAdmin : Définit l’adresse mail de l’administrateur du serveur qui apparaitra sur les pages d’erreurs

exemple :


ServerAdmin admin@monserveur.org

DocumentRoot : définit la racine des documents du serveur Web exemple :

DocumentRoot /var/www


Encodage de caractères

Si vous utilisez ce tutoriel, il y a fort à parier que vous souhaitez publier un site web en langue française. Or la langue de Molière dispose d’un certain nombre de particularités et notamment l’accentuation. Afin d’éviter l’affichage de caractères exotiques en lieu et place de vos "é", "è" ou encore "à" ou "ç", il est nécessaire d’indiquer à votre serveur web d’utiliser un jeu de caractères compatible avec la langue française. La prise en charge du caractère "€" relève elle aussi de son système d’encodage. Heureusement pour nous, Apache peut gérer un tel jeu de caractères. Pour cela nous allons donc le configurer :

sudo gedit /etc/apache2/apache2.conf

Cherchez la ligne suivante :

#AddDefaultCharset        ISO-8859-1

Et modifiez la comme ceci

AddDefaultCharset        ISO-8859-15

et ajoutez la ligne suivante dans le paragraphe qui suit :

AddCharset ISO-8859-15 .iso8859-15  .latin15 .fr

Il ne nous reste plus qu’à recharger la configuration d’Apache :


sudo /etc/init.d/apache2 reload


Configuration du port d’écoute

Tout serveur Web normalement configuré est censé attendre les connexions sur port 80/TCP. Or, rien ne vous empêche de modifier ce port pour des besoins spécifiques, ou juste pour sécuriser votre serveur. Nous verrons d’ailleurs plus tard lors de la configuration du mode SSL que cela sera indispensable. Afin de modifier le port d’écoute ou en ajouter un, il suffit de le mentionner dans le fichier ports.conf.

sudo gedit /etc/apache2/ports.conf

Vous pouvez alors, soit ajouter un port d’écoute en ajoutant une ligne à ce fichier, soit modifier le 80 en ce que vous souhaitez ; tout en prenant garde que le port choisi ne soit pas déjà affecté à un autre service. Exemple :

Listen 80
Listen 1880

Mon serveur web attendra les requêtes sur le port 80 ainsi que sur le port 1880

Listen 81

Mon serveur web n’attendra les requêtes que sur le port 81.

Une fois les modifications effectuées redémarrez le serveur par

sudo /etc/init.d/apache2 restart

Gestion des alias

La directive Alias permet de rendre accessibles des fichiers présents ailleur que dans la sous-arborescence définie grâce à la directive DocumentRoot. Elle permet donc d’accéder à des répertoires situés à l’extérieur de la racine du serveur.

Exemple


Alias /image /ftp/pub/image


Une requête pointant vers http://votre_serveur/image affichera le contenu du répertoire /ftp/pub/image comme si celui-ci était présent dans /var/www/image (comme défini dans la directive DocumentRoot plus haut)

NOTE : L’utilisation de cette directive dépend du module alias qui peut être chargé à l’aide des commandes  :

sudo a2enmod alias
sudo /etc/init.d/apache2 force-reload


Hôtes virtuels

Une des fonctionnalités intéressantes du serveur web Apache est sa capacité à pouvoir héberger plusieurs sites web pour différentes adresses. Le même système pourra par exemple héberger le site www.toto.com et www.monsite.org.

Il existe plusieurs types d’hôtes virtuels. Nous n’aborderons ici que les serveurs virtuels basés sur le nom. Une documentation complète sur les hôtes vituels est disponible ici

Afin de pouvoir héberger plusieurs sites web disposant d’adresses différentes, il est nécessaire que la résolution des noms soit effective. Il faut donc pour cela disposer d’un système de résolution de type DNS qui effectue cette résolution pour vous. Vous pouvez utiliser un système de DNS gratuit de type DynDNS disponible sur http://www.dyndns.com. Si vous possédez votre propre nom de domaine vous pouvez mettre en place un serveur DNS par le biais du très efficace serveur Bind9, ou utiliser les serveurs DNS de votre fournisseur de nom de domaine.

La meilleure façon de créer un hôte virtuel basé sur le nom consiste à écrire un fichier situé dans le répertoire /etc/apache2/sites-available et contenant l’ensemble des paramètres de cet hôte. Ce fichier sera basé sur le modèle que nous allons créer : /etc/apache2/sites-available/example

NameVirtualHost *:80

<VirtualHost  www.example.com:80>
   ServerAdmin webmaster@www.example.com
   DocumentRoot /www/docs/www.example.com
   ServerName www.example.com
   ErrorLog logs/www.example.com-error_log
   CustomLog logs/www.example.com-access_log common
</VirtualHost>


Le conteneur accepte presque toutes les directives disponibles dans le cadre de la configuration du serveur principal, sa capacité à être personnalisé est donc très élevée.

Une fois votre hôte virtuel créé il est nécessaire d’activer cette configuration :

sudo a2ensite example
sudo /etc/init.d/apache2 force-reload


Pages d’erreurs

Dans le cas d’une erreur ou d’un problème, Apache peut être configuré pour effectuer quatres actions différentes :

-  afficher le message d’erreur par défaut
-  afficher un message personnalisé
-  rediriger vers un document local pour traiter l’erreur
-  rediriger vers une URL externe (un autre site web par exemple)

Afin d’activer les pages d’erreurs personnalisées il est nécessaire d’activer le module Include dont dépend cette fonctionnalité.

sudo a2enmod include

Pages d’erreurs en français

Nous allons activer les pages d’erreurs en français en éditant le fichier /etc/apache2/apache2.conf.

Cherchez cette partie


<IfModule mod_negotiation.c>
<IfModule mod_include.c>
   Alias /error/ "/usr/share/apache2/error/"

   <Directory "/usr/share/apache2/error">
       AllowOverride None
       Options IncludesNoExec
       AddOutputFilter Includes html
       AddHandler type-map var
       Order allow,deny
       Allow from all
       LanguagePriority en es de fr
       ForceLanguagePriority Prefer Fallback
   </Directory>

   ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
   ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
   ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
   ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
   ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
   ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
   ErrorDocument 410 /error/HTTP_GONE.html.var
   ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
   ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
   ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
   ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
   ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
   ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
   ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
   ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
   ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
   ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>


Modifiez la ligne

LanguagePriority en es de fr
en

LanguagePriority fr en es de
Puis rechargez la configuration d’Apache avec la commande sudo /etc/init.d/apache2 force-reload

Pages d’erreurs personnalisées

Afin de créer des pages d’erreurs personnalisées, nous allons utiliser la directive ErrorDocument. Celle-ci accepte deux arguments : le numéro de l’erreur et le document à utiliser pour celle-ci.

ErrorDocument        <numéro d'erreur>        <document>

L’argument document peut prendre plusieurs valeurs, suivant l’action que l’on veut effectuer :

-  le mot clé "default" : Apache affichera alors le message d’erreur par défaut
-  "un message commencant par une double côte : Apache affichera le message depuis le guillemet ouvrant jusqu’à la fin de la ligne
-  un chemin sur le système de fichier local : cela permet d’afficher nos pages d’erreurs personnalisées
-  une URL entière vers laquelle le client sera redirigé lorsque l’erreur se produira

Exemple :


# On veut rediriger toutes les erreurs 404 (document non trouvé)
# vers la page http://www.example.com
ErrorDocument        404        http://www.example.com

# On veut afficher le message "Notre serveur a eu une erreur"
# pour  toutes les erreurs 500 (erreur interne au serveur)
ErrorDocument        500        "Notre serveur a eu une erreur

# On veut afficher la page "/var/www/error/404.html" pour toutes
# les erreurs 404
# Mais on veut afficher le message d'erreur par défaut pour le
# répertoire /var/www/htdocs
ErrorDocument        404        /var/www/error/404.html
<Directory /var/www/htdocs>
        ErrorDocument        404        default
        [ autres directives de configuration ]
</Directory>


Vous pouvez maintenant personnaliser entièrement les pages d’erreurs de votre serveur web. Afin de connaitre la correspondance des numéros d’erreurs reportez vous au tableau suivant

400     Bad Request
401     Authorization Required
403     Forbidden
404     Not Found
405     Method Not Allowed
406     Not Acceptable (encoding)
407     Proxy Authentication Required
408     Request Timed Out
409     Conflicting Request
410     Gone
411     Content Length Required
412     Precondition Failed
413     Request Entity Too Long
414     Request URI Too Long
415     Unsupported Media Type
500     Internal Server Error
501     Not Implemented
502     Bad Gateway
503     Service Unavailable
504     Gateway Timeout
505     HTTP Version Not Supported

Une fois vos pages d’erreurs configurées, rechargez la configuration d’Apache avec la commande sudo /etc/init.d/apache2 force-reload

//////////////////////////////////////////////////////

L'ensemble de ce site est placé sous license GNU FDL et CC BY-SA

Auteur : Frédéric Bouby



  



Guest-19

Re: Configuration Apache

Bonjour,
comment résoudre l'erreur 503 d'apache dans la machine local. j'ai configurer un frontal apache mod-jk et un et un https.



  



Guest-41

Re: Configuration Apache

Bonjour,
je voudrais changer le port d'ecoute de apache j'utilise wampserver 1.6.6
j'ai bien lu le tuto listen 81 .... mais j'ai pas trouvé le port.conf



  



Guest-90

Re: Configuration Apache

Bonjour,

en effet dans wamp il faut configurer le fichier httpd.conf il me semble



  



Réponse rapide

forum Répondez et participez librement forum
Services informatiques Merci d'écrire un message de plus de 10 mots en français correct. (Tout message mal rédigé sera effacé.)

Produits en vente en relation avec le sujet :

Pied de page des forums

Forum : Réseau - Sécurité - Materiel
Php - Référencement - Serveurs - Divers
Windows - Internet - Logiciels - Communication
SARL Brakstar / 485 013 809 R.C.S. BOURGES
2 rue de coulon. 18310 Graçay
Mail : societe@brakstar.com
USA EN ES BR PO DE NL IT SU DN HU JP TE RU PL FI NO GR SE SL ET TH UK SL IN LH RO LE HE BG CZ MS CAT IR CR