Ajout de modules au serveur

Du fait qu'Apache 1.3 prend en charge les objets partagés dynamiques (DSO), vous pouvez aisément charger des modules SSL ou compiler vos propres modules pour le Red Hat Linux Secure Web Server. La prise en charge des objets partagés dynamiques signifie qu'il est possible de charger des modules lors de l'exécution. Du fait que les modules ne sont chargés que lorsque c'est nécessaire, ils n'utilisent de mémoire que s'ils sont chargés et nécessitent, globalement, moins de mémoire.

Le groupe Apache fournit une documentation complète sur les objets partagés dynamiques à l'adresse http://www.apache.org/docs/dso.html. Une fois votre serveur installé, vous pouvez également consulter la page http:// votre_domaine/manual/mod/ afin d'obtenir une documentation sur les modules Apache au format HTML (si vous avez installé le paquetage apache-manual). Une description sommaire du mode de chargement des modules figure ci-après; pour plus de détails, reportez-vous aux URL fournies.

Pour que Red Hat Linux Secure Web Server utilise un module partagé de façon dynamique, celui-ci doit comprendre une ligne LoadModule et une ligne AddModule dans httpd.conf. Par défaut, de nombreux modules comprennent déjà ces deux lignes dans httpd.conf ; toutefois, seuls quelques-uns des modules les moins souvent utilisés sont identifiés comme des commentaires. Les modules identifiés comme des commentaires ont été inclus durant la compilation, mais ne sont pas chargés par défaut.

Si vous devez utiliser l'un de ces modules non chargés, reportez-vous au fichier httpd.conf pour voir tous les modules disponibles. A chaque module disponible correspond une ligne LoadModule. Par exemple, la section LoadModule commence par ces sept lignes :

#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module         modules/mod_env.so
LoadModule config_log_module  modules/mod_log_config.so
LoadModule agent_log_module   modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module  modules/mod_mime_magic.so

La plupart des lignes ne sont pas identifiées comme des commentaires, ce qui indique que le module qui y est associé a été compilé et est chargé par défaut. La première ligne est identifiée comme un commentaire, ce qui signifie que le module correspondant (mmap_static_module) a été compilé mais non chargé.

Pour faire en sorte que Red Hat Linux Secure Web Server charge un module non chargé, commencez par supprimer le commentaire de la ligne LoadModule correspondante. Par exemple, si vous voulez faire en sorte que Red Hat Linux Secure Web Server charge mime_magic_module, modifiez cette ligne LoadModule par rapport à l'original :

#LoadModule mime_magic_module modules/mod_mime_magic.so
	

Supprimez le commentaire de la ligne ci-dessus, de manière à ce qu'elle se présente comme suit :

LoadModule mime_magic_module modules/mod_mime_magic.so
	

Supprimez ensuite le commentaire de la ligne correspondante dans la section AddModule du fichier httpd.conf. Pour continuer avec l'exemple précédent, supprimez le commentaire de la ligne mod_mime_magic. La ligne originale (par défaut) ressemble à ceci :

#AddModule mod_mime_magic.c
	

La ligne sans commentaire devrait ressembler à ceci :

AddModule mod_mime_magic.c
	

Après avoir supprimé le commentaire des lignes LoadModule et AddModule pour le module que vous voulez charger, arrêtez, puis démarrez votre serveur Web, comme expliqué à la la section intitulée Démarrage et arrêt d'Apache dans Chapitre 11. Après le démarrage, le module doit se charger dans Red Hat Linux Secure Web Server.

Si vous avez votre module personnel, vous pouvez l'ajouter au fichier httpd.conf afin qu'il soit compilé et chargé comme un objet partagé dynamique. Pour ce faire, vous devez installer le paquetage apache-devel, en procédant de la manière décrite à la Chapitre 10. Vous avez besoin du paquetage apache-devel parce qu'il installe les fichiers à inclure, les fichiers d'en-tête et l'outil de support APache eXtenSion (APXS). APXS utilise les fichiers à inclure et les fichiers d'en-tête pour compiler votre module de manière à ce qu'il fonctionne avec Apache.

Si vous avez écrit votre module personnel ou emprunté celui de quelqu'un d'autre, vous devez être en mesure d'utiliser APXS pour compiler les sources de votre module en dehors de l'arbre source Apache, sans devoir utiliser d'indicateurs pour compilateur et/ou éditeur de liens. Pour plus d'informations sur APXS, reportez-vous à la documentation sur Apache à l'adresse http://www.apache.org/docs/dso.html.

Après avoir compilé votre module à l'aide d'APXS, placez-le dans /usr/lib/apache. Ensuite, votre module a besoin d'une ligne LoadModule et d'une ligne AddModule dans le fichier httpd.conf, comme décrit précédemment pour les modules personnels d'Apache. Après la liste LoadModule dans httpd.conf, ajoutez une ligne indiquant le fichier d'objet partagé pour votre module, comme suit :

LoadModule foo_module 	modules/mod_foo.so
	

Vous devez modifier le nom du module et celui de votre fichier d'objet partagé de manière appropriée.

A la fin de la liste AddModule dans httpd.conf, ajoutez une ligne indiquant le fichier de code source pour votre module, comme suit :

AddModule mod_foo.c
	

Vous devez modifier le nom du fichier de code source de façon appropriée.

Une fois les étapes précédentes accomplies, arrêtez et démarrez votre serveur Web en procédant de la manière décrite à la la section intitulée Démarrage et arrêt d'Apache dans Chapitre 11. Si vous avez tout fait correctement et si votre module est codé correctement, votre serveur Web doit trouver le module et le charger au démarrage.

Module mod_ssl Security

Le module de sécurité mod_ssl du Red Hat Linux Secure Web Server est fourni comme DSO (Dynamic Shared Object, objet partagé dynamique). Ceci signifie que le serveur Web Apache peut être recompilé par des utilisateurs si la correction d'extension EAPI du module de sécurité mod_ssl est appliquée à Apache. Suivez les instructions relatives à la création de mod_ssl dans Apache, incluses dans la documentation mod_ssl, mais ajoutez l'indicateur suivant :

--with-eapi-only
	  

La ligne de commande complète doit se présenter comme ceci :

./configure [userflags] --with-eapi-only
	  

Ensuite, compilez et installez Apache.

NoteRemarque
 

Red Hat ne peut pas prendre en charge des versions recompilées du serveur Web Apache. L'installation de la version livrée est prise en charge, mais si vous recompilez Apache, vous serez livré à vous-même. Ne recompilez pas Apache si vous n'êtes pas absolument certain de savoir ce que vous faites.