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.
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.
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.
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.
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.
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.
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.
Indique le laps de temps pendant lequel le serveur attend avant d'indiquer un dépassement de délai pour une demande.
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é.
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.
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.
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.
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.
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.
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 :
autoriser tout accès, mais en définissant des exceptions.
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
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.
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.
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.
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 ».
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.
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.
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>