Serveur Apache HTTP Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_example

Langues Disponibles: en | fr | ko

Description: | Illustration de l'API des modules Apache
Statut: | Expérimental
Identificateur de Module: | example_module
Fichier Source: | mod_example.c

### Sommaire

Certains fichiers situés dans le répertoire `modules/experimental` de l'arborescence de la distribution d'Apache sont fournis à titre d'exemples pour ceux qui souhaitent écrire des modules qui utilisent l'API d'Apache.

Le fichier principal est `mod_example.c`, qui constitue une illustration exhaustive des différents mécanismes et syntaxes d'appels. En aucun cas un module additionnel n'aura à inclure des routines pour tous les appels - il n'en nécessitera au contraire qu'un petit nombre !

Le module example fonctionne réellement. Si vous le chargez dans votre serveur, activez le gestionnaire "example-handler" dans une section location, et essayez d'accéder à la zone du site web correspondante, vous verrez s'afficher certaines sorties que le module example produit au cours des différents appels.

### Directives

### Sujets

- Compilation du module example
- Utilisation du module `mod_example`

- Commentaires

## Compilation du module example

Pour inclure le module example dans votre serveur, effectuez les étapes suivantes :

1. Exécutez `configure` avec l'option `--enable-example`.
2. Compilez le serveur (exécutez la commande "`make`").

Pour ajouter votre propre module :

1. `cp modules/experimental/mod_example.c modules/nouveau_module/mod_monexemple.c`
2. Modifiez le fichier.
3. Créez `modules/nouveau_module/config.m4`.
   1. Ajoutez `APACHE_MODPATH_INIT(nouveau_module)`.
   2. Copiez la ligne APACHE_MODULE contenant "example" depuis `modules/experimental/config.m4`.
   3. Remplacez le premier argument "example" par monexemple.
   4. Remplacez le second argument par une brève description de votre module. Cette description sera utilisée par la commande `configure --help`.
   5. Si la compilation de votre module nécessite des drapeaux de compilation C, des drapeaux d'édition de liens, ou de bibliothèques supplémentaires, ajoutez les respectivement à CFLAGS, LDFLAGS et LIBS. Reportez-vous aux fichiers `config.m4` des répertoires des autres modules pour plus d'exemples.
   6. Ajoutez `APACHE_MODPATH_FINISH`.
4. Créez le fichier `module/nouveau_module/Makefile.in`. Si la compilation de votre module ne nécessite pas d'instructions particulières, ce fichier ne doit contenir que la ligne `include $(top_srcdir)/build/special.mk`.
5. Exécutez ./buildconf à la racine du répertoire.
6. Compilez le serveur après avoir exécuté la commande configure avec l'option --enable-monexemple.

## Utilisation du module `mod_example`

Pour activer le module example, ajoutez à votre fichier `httpd.conf` un bloc du style :

    <Location /example-info>
       SetHandler example-handler
    </Location>

Vous pouvez aussi ajouter ce qui suit dans un fichier `.htaccess`, puis accéder au fichier "test.example" à partir du répertoire correspondant :

    AddHandler example-handler .example

Après avoir rechargé la configuration ou redémarré votre serveur, vous devriez pouvoir accéder à ce fichier et voir s'afficher ce qui a été décrit plus haut.

## Example Directive

Description: | Directive de démonstration pour illustrer l'API des modules Apache
Syntaxe: | `Example`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
Statut: | Expérimental
Module: | mod_example

La directive `Example` n'a pour fonction que de définir un drapeau de démonstration que le gestionnaire de contenu du module example va afficher. Elle ne possède aucun argument. Si vous naviguez vers une URL à laquelle le gestionnaire de contenu example s'applique, vous verrez s'afficher les routines du module, ainsi que l'ordre dans lequel elles ont été appelées pour servir le document demandé. On peut observer l'effet de cette directive dans la phrase "`Example directive declared here: YES/NO`".

Langues Disponibles: en | fr | ko

## Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.