30.6. Configuration

Une fois Apache installé, les modifications ne sont nécessaires que si vous avez des besoins ou souhaits particuliers. Vous pouvez configurer Apache via YaST ou SuSEconfig ou en éditant directement le fichier /etc/apache2/httpd.conf.

30.6.1. Configuration avec SuSEconfig

SuSEconfig reporte les réglages effectués dans /etc/sysconfig/apache2 dans les d'Apache. Les options de configuration qui y sont proposées devraient être suffisantes pour la plupart des cas. Le fichier contient des commentaires expliquant les effets de chaque variable.

30.6.1.1. Fichiers de configuration personnalisés

Au lieu de modifier la configuration directement dans le fichier /etc/apache2/httpd.conf, vous pouvez, à l'aide de la variable APACHE_CONF_INCLUDE_FILES, indiquer votre propre fichier de configuration (tel que httpd.conf.local). Celui-ci sera interprété par le fichier de configuration principal. De cette manière, les changements de configuration sont conservés même si le fichier /etc/apache2/httpd.conf est écrasé lors d'une réinstallation.

30.6.1.2. Les modules

Vous pouvez activer les modules installés grâce à YaST en ajoutant le nom du module dans liste indiquée pour la variable APACHE_MODULES. Vous trouverez cette variable dans le fichier /etc/sysconfig/apache2.

30.6.1.3. Les drapeaux (flags)

La variable APACHE_SERVER_FLAGS permet d'indiquer des drapeaux (flags) qui activent et désactivent certaines sections dans le fichier de configuration. Si une section dans le fichier de configuration est incluse dans les lignes suivantes :

<IfDefine un_drapeau> . . . </IfDefine> 
    

celle-ci ne sera activée que si le drapeau correspondant est positionné dans la variable ACTIVE_SERVER_FLAGS : ACTIVE_SERVER_FLAGS= un_drapeau On peut ainsi activer ou désactiver simplement de vastes sections du fichier de configuration en guise de test.

30.6.2. Configuration manuelle

Pour activer des modifications qui ne sont pas possibles au moyen des paramètres de /etc/sysconfig/apache2, éditez le fichier de configuration /etc/apache2/httpd.conf.Vous trouverez dans les sections ci-dessous quelques uns des paramètres réglables de cette façon. Ils apparaissent ici dans le même ordre que dans le fichier.

30.6.2.1. DocumentRoot

Un réglage de base est le DocumentRoot ; il s'agit du répertoire dans lequel Apache doit trouver les pages web qui seront fournies par le serveur. Pour l'hôte virtuel par défaut, la valeur est/srv/www/htdocs et ne doit normalement pas être modifiée.

30.6.2.2. Timeout

Indique le laps de temps pendant lequel le serveur attend avant d'indiquer un dépassement de délai pour une demande.

30.6.2.3. MaxClients

Le nombre maximum de clients qu'Apache peut gérer simultanément. La valeur par défaut est 150 ; cependant, cette valeur peut être insuffisante dans le cas d'un site web très fréquenté.

30.6.2.4. LoadModule

Les directives LoadModule indiquent quels modules doivent être chargés. L'ordre de chargement est indiqué par les modules eux-mêmes. Ces directives indiquent de plus dans quel fichier le module est contenu.

30.6.2.5. Port

Indique le port sur lequel Apache écoute les demandes. C'est habituellement le port 80, le port standard pour HTTP. Normalement, il est déconseillé de modifier cette valeur. On peut souhaiter faire écouter Apache sur un autre port pour tester une nouvelle version d'un site web. De cette manière, la version fonctionnelle du site web est toujours disponible sur le port standard 80.

Une autre raison est de vouloir ne mettre à disposition les pages que sur un intranet car elle contiennent des informations qui ne sont pas destinées à être diffusées au public. Cela peut se faire en mettant la valeur du port à 8080 et en interdisant tout accès extérieur à ce port avec le pare-feu. Le serveur est alors sécurisé contre tout accès provenant de l'extérieur.

30.6.2.6. Directory

Cette directive permet de fixer les droits d'accès et autres droitssur un répertoire. Une telle directive existe également pour le DocumentRoot. Le nom du répertoire indiqué icidoit toujours être modifié en parallèle avec DocumentRoot.

30.6.2.7. DirectoryIndex

Ce paramètre permet de configurer les fichiers que Apache devra chercher pour compléter une URL où manque le nom du fichier à atteindre. Le réglage par défaut est index.html. Par exemple, lorsque l'URL http://www.exemple.com/sous/repertoire est appelée par le client et lorsque le répertoire sous/repertoire existe dans le répertoire DocumentRoot et contient bien un fichier index.html, cette page est renvoyée au client par Apache.

30.6.2.8. AllowOverride

Chaque répertoire à partir duquel Apache fournit des documents peut contenir un fichier permettant, pour ce répertoire, de spécifier des droits d'accès et réglages qui prendront le pas sur les droits globalement configurés et d'autres réglages. Ceux-ci sont appliqués de manière récursive pour le répertoire actuel et ses sous-répertoires jusqu'à ce qu'elles soient modifiées dans un sous-répertoire par un fichier similaire. Cela signifie aussi que de tels réglages sont valables globalement s'ils sont indiqués dans un fichier dans le DocumentRoot. Ces fichiers portent généralement le nom de .htaccess, mais ce nom peut être modifié comme décrit dans la section Section 30.6.2.10, « AccessFileName ».

La directive AllowOverride permet de définir si les réglages indiqués dans les fichiers locaux pourront remplacer les réglages globaux. Les valeurs possibles sont None, All ainsi que toutes les combinaisons possibles d'Options, de FileInfo, de AuthConfig et de Limit. La documentation d'Apache donne une description précise de la signification de ces valeurs. Le réglage par défaut (sans risque) est None.

30.6.2.9. Order

Cette option a une influence sur l'ordre dans lequel les réglages des droits d'accès Allow et Deny seront appliqués. L'ordre par défaut est :

Order allow,deny

Sont d'abord appliqués les droits d'accès pour les accès autorisés et ensuite les droits pour les accès non autorisés. Il y a deux façons d'envisager les droits :

allow all

autoriser tout accès, mais en définissant des exceptions.

deny all

refuser tout accès, mais en définissant des exceptions.

Exemple pour deny all:

Order deny,allow
Deny from all
Allow from exemple.com
Allow from 10.1.0.0/255.255.0.0

30.6.2.10. AccessFileName

On peut régler ici le nom des fichiers qui, dans des répertoires servis par Apache, pourront écraser les réglages globaux des droits d'accès et 'autres réglages (voir aussi à ce sujet la section Section 30.6.2.8, « AllowOverride »). Le réglage par défaut est .htaccess.

30.6.2.11. ErrorLog

Indique le nom du fichier dans lequel Apache consigne des messages d'erreur. Le réglage par défaut est /var/log/httpd/errorlog. Les messages d'erreur pour les hôtes virtuels (voir section Section 30.9, « Les hôtes virtuels ») sont également consignés dans ce fichier lorsqu'aucun fichier journal particulier n'a été indiqué dans la section VirtualHost du fichier de configuration.

30.6.2.12. LogLevel

Les messages d'erreur sont classés en différents niveaux selon l'urgence. Ce réglage indique le niveau d'urgence à partir duquel les messages sont émis. Un réglage sur un niveau indique l'émission de messages de ce niveau et de messages plus urgents. Le réglage par défaut est warn.

30.6.2.13. Alias

On peut indiquer, grâce à un alias, un raccourci vers un répertoire permettant d'accéder directement à ce répertoire. Ainsi, on peut accéder via l'alias /manuel/ au répertoire /srv/www/htdocs/manual même si le répertoire configuré dans le DocumentRoot diffère du répertoire /srv/www/htdocs (par contre, l'alias ne change rien si le DocumentRoot pointe sur ce répertoire). L'utilisation d'un alias permet d'accéder directement au répertoire correspondant avec http://localhost/manual. Pour définir les droits sur le répertoire cible spécifié par une directive Alias, il peut être nécessaire d'utiliser une directive Directory. Voir la section Section 30.6.2.6, « Directory ».

30.6.2.14. ScriptAlias

Cette instruction ressemble à l'instruction alias. Elle indique en plus que les fichiers du répertoire cible doivent être gérés comme des scripts CGI.

30.6.2.15. Les Server Side Includes

On peut activer les Server Side Includes qui chercheront des instructions SSI au sein des fichiers exécutables. Cela se fait grâce à l'instruction suivante :

<IfModule mod_include.c>
XBitHack on
</IfModule> 

Pour vérifier qu'un fichier contient des SSI, il suffit de le rendre exécutable par chmod +x nomfichier. Il est sinon aussi possible d'indiquer explicitement le type de fichiers devant être examinés à la recherche d'instructions SSI. Cela se fait au moyen de :

AddType text/html .shtml
AddHandler server-parsed .shtml

Il n'est pas conseillé d'indiquer ici tout simplement .html car Apache analyse alors toutes les pages à la recherche de Server Side Includes (même celles qui n'en contiennent certainement pas), ce qui diminue considérablement la performance. Pour SUSE LINUX, ces deux directives figurent déjà dans le fichier de configuration ; il n'y a doncnormalement rien à régler.

30.6.2.16. UserDir

A l'aide du module mod_userdir et de la directive UserDir, vous pouvez indiquer un répertoire dans le répertoire personnel de l'utilisateur, dans lequel celui-ci pourra publier ses fichiers via Apache. On peut le régler dans SuSEconfig par le biais de la variable HTTPD_SEC_PUBLIC_HTML. Pour permettre de publier les fichiers, il faut que cette variable soit mise à lavaleur yes. Cela amène à la déclaration suivante dans le fichier /etc/apache2/mod_userdir.conf qui est interprété par /etc/apache2/httpd.conf.

<IfModule mod_userdir.c>
UserDir public_html
</IfModule> 

SUSE LINUX Guide de l'administrateur 9.2