Tout fichier pris en compte par le gestionnaire
    cgi-script sera traité en tant que script CGI et
    exécuté par le serveur, sa sortie étant renvoyée au client. Les
    fichiers sont associés à ce gestionnaire soit parce qu'ils possèdent
    un nom contenant une extension définie par la directive 
Comme introduction à l'utilisation des scripts CGI avec Apache, voir notre tutoriel Les contenus dynamiques avec CGI.
Le module 
À des fins de compatibilité ascendante, le gestionnaire
    cgi-script sera également activé pour tout fichier possédant le type
    MIME application/x-httpd-cgi. L'utilisation du type
    MIME magic est obsolète.
Le serveur va définir les variables d'environnement CGI comme décrit dans la Spécification CGI, de la manière suivante :
off. Par défaut, si la
      directive On.on (elle est à off par défaut), et si
      une recherche DNS inverse sur l'adresse IP de l'hôte client
      aboutit effectivement à un nom d'hôte.on, et si l'hôte client supporte le
      protocole ident. Notez que l'on ne peut accorder une confiance
      aveugle au contenu de cette variable car il peut être aisément
      falsifié, et si un mandataire s'intercale entre le client et le
      serveur, il est totalement inutilisable.Ce module utilise aussi les fonctions de base ap_add_common_vars et ap_add_cgi_vars pour ajouter des variables d'environnement comme :
Pour une liste exhaustive de ces variables, vous pouvez écrire un script CGI basique qui extrait toutes les variables d'environnement passées par Apache selon un format adapté.
Le débogage des scripts CGI était difficile par le passé, principalement parce qu'il n'était pas possible d'étudier la sortie (sortie standard et erreurs) des scripts dont l'exécution échouait. Ces directives permettent une journalisation plus détaillée des erreurs.
Lorsqu'il est configuré, le journal des erreurs CGI enregistre la sortie de tout programme CGI dont l'exécution ne s'effectue pas correctement. Un script CGI dont l'exécution échoue provoque la journalisation d'une grande quantité d'informations. Les deux premières lignes possèdent toujours le format suivant :
Si le script CGI n'a pas pu démarrer, le fichier journal contiendra les deux lignes supplémentaires suivantes :
Par contre, si l'erreur provient du renvoi par le script d'informations incorrectes dans les en-têtes (dû souvent à une bogue du script), les informations suivantes sont journalisées :
(Les parties %stdout et %stderr seront absentes si le script n'a rien envoyé sur la sortie standard ou la sortie d'erreurs).
La directive 
Ce journal sera ouvert par l'utilisateur sous lequel les
    processus enfants s'exécutent, c'est à dire l'utilisateur spécifié
    par la directive du serveur 
Notez que l'on ne doit activer la journalisation des scripts qu'à des fins de débogage lors de l'écriture de scripts CGI, et non de manière permanente sur un serveur en production. Elle n'est pas optimisée en ce qui concerne la vitesse et l'efficacité, et peut présenter des problèmes de sécurité si on l'utilise dans un cadre autre que celui pour lequel elle a été conçue.
La directive 
Cette directive limite la taille du corps de toute entité PUT ou POST qui sera enregistrée dans le journal, afin de prévenir une croissance trop importante et trop rapide du fichier journal due à la réception de corps de requête de grandes tailles. Cette directive modifie cette taille maximale, dont la valeur par défaut est de 1024 octets.