46.3. Configuration

Apache dans SUSE Linux peut être configuré de deux façons différentes : avec YaST ou manuellement. La configuration manuelle offre un niveau de détail supérieur, mais est moins pratique que l'interface utilisateur graphique de YaST.

[Important]Modifications de configuration

La modification de certaines valeurs de configuration d'Apache ne prend effet qu'après le redémarrage d'Apache. Ceci se produit automatiquement lorsque vous terminez la configuration avec YaST et que l'option Activé du Service HTTP est sélectionnée. Le redémarrage manuel est décrit dans la Section 46.3.3, « Activation, démarrage et arrêt d'Apache ». La plupart des modifications de configuration ne nécessitent qu'un rechargement avec rcapache2 reload.

46.3.1. Configuration d'Apache avec YaST

YaST vous permet de transformer un hôte de votre réseau en serveur Web. Pour configurer un tel serveur, démarrez YaST et sélectionnez Services réseau+Serveur HTTP. Lorsque vous lancez ce module pour la première fois, l'assistant (wizard) serveur HTTP démarre et vous invite à prendre quelques décisions de base concernant l'administration du serveur.

46.3.1.1. Assistant (wizard) serveur HTTP

L'assistant (wizard) serveur HTTP comprend cinq étapes ou boîtes de dialogue. Dans la dernière boîte de dialogue, vous pouvez passer en mode de configuration pour experts afin d'effectuer des paramétrages encore plus pointus.

Sélection du périphérique réseau

Spécifiez les interfaces réseau et les ports qu'Apache utilise pour écouter les requêtes entrantes. Vous pouvez sélectionner toute combinaison d'interfaces réseau existantes et leurs adresses IP respectives. Vous pouvez utiliser les ports de ces trois plages (ports connus, ports enregistrés et ports dynamiques ou privés) qui ne sont pas réservés par d'autres services.

Le paramètre par défaut est l'écoute sur toutes les interfaces réseau (adresses IP) sur le port 80. Lorsque le pare-feu est activé, vous pouvez vérifier si vous devez y activer les ports Apache.

Cochez la case Ouvrir le pare-feu sur les ports sélectionnés pour ouvrir les ports dans le pare-feu sur lequel le serveur Web procède à l'écoute. Cette opération est nécessaire pour rendre le serveur Web disponible sur le réseau, qui peut être un réseau local, étendu ou le réseau Internet public. Il est utile de maintenir fermé le port Listen dans les situations de test où aucun accès extérieur au serveur Web n'est nécessaire. Si les paramètres par défaut vous conviennent ou si avez effectué des modifications, cliquez sur Suivant pour poursuivre la configuration.

Figure 46.1. Assistant (wizard) serveur HTTP : Sélection du périphérique réseau

Assistant (wizard) serveur HTTP : Sélection du périphérique réseau
Modules

Le paquetage SUSE Linux Apache est fourni avec de nombreux modules Apache. Ces modules étendent les fonctionnalités d'Apache et sont disponibles pour une vaste gamme de tâches. L'option de configuration Modules permet le chargement et le déchargement de divers modules Apache au moment du démarrage du serveur. Pour une explication plus détaillée des modules, consultez la Section 46.5, « Modules Apache ». Cliquez sur Suivant pour continuer.

Figure 46.2. Assistant (wizard) serveur HTTP : Modules

Assistant (wizard) serveur HTTP : Modules
Hôte par défaut

Cette option concerne le serveur Web par défaut. Comme l'explique la Section 46.4, « Hôtes virtuels », Apache peut servir plusieurs domaines à partir d'une seule machine physique. Le premier domaine déclaré (ou VirtualHost) du fichier de configuration est généralement appelé hôte par défaut. Pour modifier les paramètres de l'hôte, choisissez l'entrée correspondante dans le tableau, puis cliquez sur Modifier. Pour ajouter un hôte supplémentaire, cliquez sur Ajouter. Pour supprimer un hôte, sélectionnez-le et cliquez sur Supprimer.

À cette étape, vous pouvez ajouter une option et une valeur SSL (Secure Sockets Layer) aux paramètres de l'hôte. Pour plus d'informations à ce sujet, consultez Section 46.3.1.3, « Ajout de la prise en charge SSL ».

Figure 46.3. Assistant (wizard) serveur HTTP : Hôte par défaut

Assistant (wizard) serveur HTTP : Hôte par défaut

Vous trouverez ci-dessous la liste des paramètres par défaut du serveur :

Document Root

Comme l'explique Section 46.2.3.4, « Racine du document », /srv/www/htdocs est l'emplacement par défaut à partir duquel Apache diffuse des pages Web.

Répertoire

/srv/www/htdocs est l'emplacement des pages Web.

Alias

À l'aide des directives Alias, les URL peuvent être assignées à des emplacements physiques du système de fichiers. Par conséquent, vous pouvez accéder à un chemin particulier même en dehors de Document Root dans le système de fichiers par l'intermédiaire d'une URL avec un alias sur ce chemin.

L'alias /icons SUSE Linux par défaut pointe vers /usr/share/apache2/icons pour les icônes Apache affichées dans la vue d'index de répertoire.

Répertoire

/usr/shareapache2/icons est l'emplacement du répertoire Alias.

ScriptAlias

Comme la directive Alias, la directive ScriptAlias assigne une URL à un emplacement de système de fichiers. La différence est que ScriptAlias désigne le répertoire cible comme un emplacement CGI, c'est-à-dire que les scripts CGI doivent être exécutés à cet emplacement.

Répertoire

/srv/www/cgi-bin est l'emplacement du répertoire ScriptAlias.

Include

/etc/apache2/conf.d/*.conf est le répertoire qui contient les fichiers de configuration fournis avec certains paquetages. /etc/apache2/conf.d/apache2-manual?conf est le répertoire qui contient tous les fichiers de configuration apache2-manual.

Résolution du serveur

Cette option fait référence à la Section 46.4, « Hôtes virtuels ».

Déterminer le serveur de requête par des en-têtes HTTP permet à un VirtualHost de répondre à une requête sur son nom de serveur (consultez la Section 46.4.1, « Hôtes virtuels à base de nom »).

Déterminer le serveur de requête par l'adresse IP du serveur permet à Apache de sélectionner l'hôte demandé par les informations d'en-tête HTTP que le client envoie. Consultez la Section 46.4.2, « Hôtes virtuels à base d'adresse IP » pour plus d'informations sur les hôtes virtuels basés sur IP.

Nom du serveur

Cette option indique l'URL par défaut utilisée par les clients pour contacter le serveur Web. Utilisez un nom de domaine complet (consultez Domaine) pour atteindre le serveur Web à l'adresse http://nom de domaine complet ou son adresse IP.

Courrier électronique de l'administrateur du serveur

Fournit l'adresse électronique de l'administrateur du serveur Web pour cette option.

Après avoir terminé l'étape Hôte par défaut, cliquez sur Suivant pour poursuivre avec la boîte de dialogue de configuration.

Hôtes virtuels

À cette étape, l'assistant affiche la liste des hôtes virtuels déjà configurés (consultez la Section 46.4, « Hôtes virtuels »). L'un des hôtes est identifié comme étant celui par défaut (par un astérisque en regard du nom du serveur). Pour définir un hôte par défaut, sélectionnez le serveur et cliquez sur Défini par défaut.

Pour ajouter un hôte, cliquez sur Ajouter pour ouvrir la boîte de dialogue qui permet d'entrer les informations de base concernant cet hôte. La zone Identification du serveur comprend le nom du serveur, la racine de contenu du serveur et le courrier électronique de l'administrateur. Le texte d'aide dans le cadre situé à gauche de la fenêtre explique chacun de ces éléments en détail. L'option Résolution du serveur est utilisée pour déterminer le mode d'identification d'un hôte. Vous pouvez indiquer si vous souhaitez déterminer un serveur de requête à partir des en-têtes HTTP ou par l'adresse IP du serveur en sélectionnant l'option correspondante. L'autre méthode consiste à déterminer l'hôte virtuel par l'adresse IP utilisée par le client lors de la connexion au serveur. Vous pouvez également activer la prise en charge SSL en cochant cette case. Vous pouvez aussi spécifier le chemin du fichier de certificat. Cliquez sur Parcourir pour afficher le répertoire par défaut /etc/apache2/ssl.crt. Après avoir entré toutes les informations, cliquez sur Suivant pour passer à la dernière étape de configuration.

Figure 46.4. Assistant (wizard) serveur HTTP : Hôtes virtuels

Assistant (wizard) serveur HTTP : Hôtes virtuels
Résumé

Il s'agit de la dernière étape de l'assistant. Indiquez-y le mode et le moment de démarrage du serveur Apache, à savoir lors de l'amorçage ou manuellement. Le port sélectionné précédemment s'affiche également, ainsi que les hôtes par défaut et virtuels. Si ces paramètres vous conviennent, cliquez sur Terminer pour achever la configuration.

Figure 46.5. Assistant (wizard) serveur HTTP : Résumé

Assistant (wizard) serveur HTTP : Résumé

46.3.1.2. Configuration du serveur HTTP pour experts

Le module Serveur HTTP vous permet également d'affiner davantage la configuration. Cliquez sur Configuration du serveur HTTP pour experts pour obtenir des options de configuration supplémentaires. Vous pouvez alors effectuer les modifications suivantes :

Écouter

Sélectionnez Écouter et cliquez sur Modifier pour ouvrir une nouvelle fenêtre dans laquelle vous pouvez ajouter, supprimer ou modifier des entrées.

Modules

Sélectionnez Modules et cliquez sur Modifier pour pouvoir modifier l'état des modules Apache2 en cliquant sur État de l'interrupteur à bascule. Cliquez sur Ajouter un module pour ajouter un nouveau module.

Hôte par défaut

Sélectionnez Hôte par défaut et cliquez sur Modifier pour pouvoir modifier les paramètres de l'hôte. Vous pouvez également ajouter, modifier ou supprimer des options.

Hôtes

Sélectionnez Hôtes et cliquez sur Modifier pour pouvoir ajouter, supprimer, modifier ou sélectionner un hôte par défaut.

Dans toutes les boîtes de dialogue précédentes, vous pouvez cliquer sur Fichiers de journalisation pour consulter le journal d'erreurs et le journal d'accès. Cliquez sur OK pour achever la configuration et revenir au centre de contrôle YaST.

46.3.1.3. Ajout de la prise en charge SSL

Pour ajouter une option SSL à l'hôte, cliquez sur Ajouter à la troisième étape (hôte par défaut) de l'assistant (wizard) serveur HTTP. Si votre serveur a déjà été configuré et que vous n'avez plus accès à l'assistant, vous pouvez configurer une option SSL en sélectionnant Hôte par défaut dans la boîte de dialogue Configuration du serveur HTTP ou en cliquant sur Modifier, puis sur Ajouter. Dans ces deux cas, la fenêtre contextuelle qui apparaît vous permet de sélectionner une option SSL et de la confirmer en cliquant sur OK. Vous êtes ensuite invité à entrer la valeur de l'option sélectionnée. Cette opération peut se limiter à l'activation ou à la désactivation de l'option, mais il arrive que vous deviez entrer la valeur appropriée. En cas de doute, consultez la documentation sur les paramètres de valeur lors de la configuration SSL. Dès que vous cliquez sur OK, l'option et la valeur apparaissent dans la liste de configuration de l'hôte. Cliquez sur Suivant pour accéder à l'étape suivante de la boîte de dialogue de configuration.

Si l'option SSL apparaît dans la liste de configuration de l'hôte, cliquez sur Modifier pour ouvrir la boîte de dialogue de configuration correspondante. Sinon, cliquez sur Ajouter, sélectionnez SSL, puis cliquez sur OK. La boîte de dialogue s'ouvre alors automatiquement. Vous pouvez ainsi ajouter, supprimer ou modifier des options SSL. Cliquez sur OK pour revenir à l'assistant (wizard) serveur HTTP.

46.3.2. Configuration manuelle d'Apache

La configuration manuelle d'Apache implique la modification des fichiers de configuration en texte brut en tant qu'utilisateur root.

[Important]Pas de module SUSEconfig pour Apache2

Le module SUSEconfig pour Apache2 a été retiré de SUSE Linux. Il n'est plus nécessaire d'exécuter SUSEconfig après avoir modifié /etc/sysconfig/apache2.

46.3.2.1. /etc/sysconfig/apache2

/etc/sysconfig/apache2 contrôle certains paramètres généraux d'Apache, tels que les modules à charger, les fichiers de configuration supplémentaires à inclure, les drapeaux avec lesquels on doit démarrer le serveur et ceux qui doivent être ajoutés à la ligne de commande. Chaque option de configuration de ce fichier est très documentée et n'est donc pas mentionnée ici. Pour un serveur Web d'utilité générale, /etc/sysconfig/apache2 doit suffire à tous les besoins de configuration. Pour les configurations spécifiques, reportez-vous à Section 46.3.2.2, « Directives Apache dans /etc/apache2/httpd.conf: Environnement global  ».

[Important]Fichiers créés automatiquement au démarrage du serveur

/etc/sysconfig/apache2 crée ou modifie automatiquement les fichiers suivants lors du démarrage ou du redémarrage du serveur Web.

  • /etc/apache2/sysconfig.d/loadmodule.conf—modules chargés lors de l'exécution

  • /etc/apache2/sysconfig.d/global.conf—paramètres généraux pour l'ensemble du serveur

  • /etc/apache2/sysconfig.d/include.conf—liste des fichiers de configuration inclus

Ne modifiez pas ces fichiers manuellement. Modifiez plutôt les paramètres correspondants dans /etc/sysconfig/apache2.

Pour peaufiner la configuration, consultez les fichiers qui se trouvent dans /etc/apache2/*, en particulier pour les modifications de configuration manuelles apportées aux hôtes virtuels, à l'environnement global ou au serveur principal.

46.3.2.2. Directives Apache dans /etc/apache2/httpd.conf: Environnement global

SUSE Linux utilise /etc/apache2/httpd.conf comme point central de référence pour d'autres fichiers de configuration. Ne modifiez le fichier que pour activer les fonctions qui ne sont pas disponibles dans /etc/sysconfig/apache2. Les directives de la section Environnement global de httpd.conf concernent le fonctionnement global d'Apache.

Les sections qui suivent décrivent certaines des directives qui ne sont pas disponibles dans YaST. Les principales directives telles que Document Root (Document Root) sont essentielles et requises dans l'Environnement global et pour l'hôte virtuel.

Les paramètres et directives suivants sont classés par affiliation logique et domaine de configuration. Ils doivent être définis dans /etc/apache2/httpd.conf.

46.3.2.2.1. LoadModule identificateur_module /chemin/vers/module

La directive LoadModule spécifie un module Apache à charger lors de l'exécution. identificateur_module est le nom du module dans sa documentation. /chemin/vers/module peut être un chemin absolu ou relatif pointant vers le fichier.

Exemple 46.1. Directive LoadModule

LoadModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so

Sur SUSE Linux, il n'est pas nécessaire d'utiliser des instructions LoadModule directement. À la place, APACHE_MODULE est utilisé dans /etc/sysconfig/apache2.

46.3.2.2.2. MaxClients nombre

Le nombre maximal de clients qu'Apache peut gérer simultanément. MaxClients doit être suffisamment grand pour gérer autant de requêtes simultanées que le site Web s'attend à en recevoir, mais suffisamment petit pour garantir que la RAM physique est suffisante pour tous les processus.

46.3.2.2.3. Timeout secondes

Spécifie la durée d'attente avant qu'Apache ne signale un dépassement de délai pour une requête.

46.3.2.3. Directives Apache dans /etc/apache2/httpd.conf: Serveur principal

Les directives de la section Serveur principal s'appliquent lorsque des requêtes du client ne sont pas gérées par un Hôte virtuel et doivent donc être traitées par un serveur par défaut ou principal. En outre, les paramètres définis dans ce contexte sont les paramètres par défaut pour tous les hôtes virtuels configurés. Il en résulte que toutes les directives du serveur principal peuvent également être définies dans le contexte Hôte virtuel, et remplacent les paramètres par défaut.

46.3.2.3.1. noms de fichier DirectoryIndex

Définissez les fichiers qu'Apache doit rechercher pour terminer une adresse URL sans spécification de fichier. Le paramètre par défaut est index.html. Par exemple, si le client demande l'adresse URL http://www.example.com/foo/ et si le répertoirefoo contient un fichier nommé index.html, Apache transmet cette page au client. Pour déclarer plusieurs files, séparez-les par des espaces.

Exemple 46.2. Directive DirectoryIndex

DirectoryIndex index.html index.shtml start.php begin.pl
46.3.2.3.2. AllowOverride Toutes | Aucune | option

Cette directive peut s'utiliser uniquement à l'intérieur d'une déclaration <Répertoire></Répertoire>. (voir Répertoire).

AllowOverride spécifie les options d'accès et d'affichage qu'un fichier .htaccess (ou d'autres fichiers spécifiés par AccessFileName décrits dans Section 46.3.2.3.3, « noms de fichier AccessFileName  ») peut remplacer.

Les valeurs possibles sont :

Toutes

Toutes les options peuvent être remplacées par un fichier .htaccess.

Aucune

Aucune option ne peut être remplacée par un fichier .htaccess.

AuthConfig

Les répertoires peuvent être protégés par mot de passe à l'aide d'un fichier .htaccess.

FileInfo

Permet l'utilisation de directives contrôlant les types de document au sein d'un fichier .htaccess. Un exemple classique consiste à configurer des pages d'erreur personnalisées avec ErrorDocument (voir http://httpd.apache.org/docs-2.0/mod/core.html#errordocument).

Indexes

Dans le cas où aucun document DirectoryIndex n'a été trouvé, ce paramètre permet à Apache de contrôler l'affichage du contenu du répertoire.

Limit

Contrôle l'accès à un répertoire ou à certains fichiers pour les clients. Les directives Allow, Deny et Order sont utilisées à cette fin au sein d'un fichier .htaccess. Pour connaître l'utilisation de ces directives, consultez la documentation du module d'accès (http://httpd.apache.org/docs-2.0/mod/mod_access.html).

Options

Permet l'utilisation des directives Options et XBitHack au sein d'un fichier .htaccess. La directive Options (http://httpd.apache.org/docs-2.0/mod/core.html#options) contrôle les fonctions du serveur qui sont disponibles dans un répertoire particulier. La directive XBitHack (http://httpd.apache.org/docs-2.0/mod/mod_include.html#xbithack) permet aux fichiers dont l'octet execute est défini pour être analysé en tant que SSI (voir Section 46.5.1.1, « Inclusions côté serveur avec mod_include  »).

[Important]Important

Ces paramètres sont appliqués de façon récurrente au répertoire actuel et à ses sous-répertoires. Ces options, excepté Toutes et Aucune, peuvent être combinées en les séparant par des espaces.

Exemple 46.3. Directive AllowOverride

<Directory /srv/www/htdocs> 
	AllowOverride None
</Directory>
<Directory /srv/www/htdocs/project> 
	AllowOverride All
</Directory>
<Directory /srv/www/htdocs/project/webapp> 
	AllowOverride Indexes Limit AuthConfig
</Directory>
46.3.2.3.3. noms de fichier AccessFileName

AccessFileName définit le nom des fichiers qui peuvent remplacer les permissions d'accès globales et d'autres paramètres des répertoires (voir Répertoire).

Le paramètre par défaut est .htaccess. Pour déclarer plusieurs files, séparez-les par des espaces.

Exemple 46.4. Directive AccessFileName

AccessFileName .htaccess .acl permission.txt
46.3.2.3.4. ErrorLog fichier | "|commande"

Spécifie le nom du fichier dans lequel Apache consigne les messages d'erreur. Apache peut également effectuer la consignation dans une commande ou un script. Le paramètre par défaut /var/log/apache2/error_log.

Exemple 46.5. Directive ErrorLog

ErrorLog /var/log/apache2/error_log
ErrorLog "|/path/to/script"
46.3.2.3.5. niveau LogLevel

Ceci définit le niveau de commentaires des messages du journal à enregistrer. Par ordre croissant de niveau de commentaires (et par ordre décroissant de gravité des messages), le niveau peut être

  • emerg

  • alert

  • crit

  • error

  • warn

  • notice

  • info

  • debug

Le paramètre par défaut est warn. Il est recommandé pour l'utilisation quotidienne. Pour des utilisations de débogage, info et debug apportent des informations utiles.

Exemple 46.6. Directive LogLevel

LogLevel debug
        

46.3.2.4. Directives Apache dans /etc/apache2/httpd.conf: Section Hôtes virtuels

Pour gérer plusieurs domaines ou noms d'hôte sur une machine physique, des conteneurs Hôte virtuel sont nécessaires. Ils sont déclarés dans les sections Hôtes virtuels de la configuration. Pour plus de détails sur la syntaxe et les fonctionnalités des hôtes virtuels, reportez-vous à Section 46.4, « Hôtes virtuels ».

46.3.3. Activation, démarrage et arrêt d'Apache

Pour activer le serveur Web Apache au démarrage, utilisez l'éditeur de niveau d'exécution de YaST. Pour le démarrer, sélectionnez Système+Services système (niveau d'exécution) dans YaST. Naviguez ensuite jusqu'à l'entrée apache2. Choisissez Activer pour qu'Apache démarre automatiquement lors de l'amorçage de la machine. Les personnes expérimentées peuvent utiliser l'outil chkconfig pour obtenir la même chose sur la ligne de commande : /sbin/chkconfig -a apache2.

Pour démarrer ou arrêter Apache, utilisez le script /usr/sbin/rcapache2 en tant qu'utilisateur root. /usr/sbin/rcapache2 prend les paramètres suivants pour démarrer et arrêter le serveur Web Apache :

start

Démarre le serveur Web Apache.

startssl

Démarre le serveur Web Apache avec le support SSL. Pour plus d'informations sur la configuration d'Apache avec SSL, reportez-vous à Section 46.3.1.3, « Ajout de la prise en charge SSL » et à Section 46.5.2.2, « Secure Sockets Layer et Apache : mod_ssl ».

stop

Arrête le serveur Web Apache.

configtest

Teste la configuration Apache sans arrêter, démarrer ou redémarrer le serveur Web. Du fait que ce test est forcé chaque fois que le serveur est démarré, rechargé ou redémarré, il n'est généralement pas nécessaire de l'exécuter de façon explicite.

restart

Arrête, puis redémarre le serveur Web.

try-restart

Redémarre le serveur Web s'il fonctionne.

restart-hup

Redémarre le serveur Web Apache en lui envoyant un signal SIGHUP. Normalement, ceci n'est pas utilisé.

graceful et reload

Arrête le serveur Web en conseillant à tous les processus Apache dupliqués de terminer leur requête avant de se fermer. À mesure qu'un processus disparaît, il est remplacé par un qui vient d'être démarré, ce qui se traduit par le "redémarrage" complet d'Apache.

[Tip]Astuce

rcapache2 reload est la méthode privilégiée de redémarrage d'Apache dans les environnements de production, car il permet à tous les clients d'être servis sans provoquer de ruptures de connexion.

status

Vérifie l'état lors de l'exécution du serveur Web Apache.

Exemple 46.7. Exemple de résultat lors du démarrage et de l'arrêt d'Apache

tux@sun # rcapache2 status
Checking for httpd2:                                  unused

tux@sun # rcapache2 configtest
Syntax OK

tux@sun # rcapache2 start
Starting httpd2 (prefork)                             done

tux@sun # rcapache2 status
Checking for httpd2:                                  running

tux@sun # rcapache2 graceful
Reload httpd2 (graceful restart)                      done

tux@sun # rcapache2 status
Checking for httpd2:                                  running
            

Un fichier de configuration incorrect peut se traduire par le démarrage incorrect d'Apache ou par son absence de démarrage. En l'absence de démarrage, il se peut qu'aucun message ne s'affiche. Consultez toujours le journal d'erreur principal pour chaque démarrage et redémarrage.