<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_cgi

Langues Disponibles:  en  |  fr  |  ja  |  ko 

Description:Ex�cution des scripts CGI
Statut:Base
Identificateur�de�Module:cgi_module
Fichier�Source:mod_cgi.c

Sommaire

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 AddHandler, soit parce qu'ils se situent dans un r�pertoire d�fini par une directive ScriptAlias.

Comme introduction � l'utilisation des scripts CGI avec Apache, voir notre tutoriel Les contenus dynamiques avec CGI.

Il est recommand� d'utiliser le module mod_cgid � la place de mod_cgi lorsqu'on utilise un module MPM multi-thread� sous Unix. Vus de l'utilisateur, les deux modules sont pratiquement identiques.

� des fins de compatibilit� ascendante, le gestionnaire cgi-script sera aussi activ� pour tout fichier poss�dant le type MIME application/x-httpd-cgi. L'utilisation du type MIME magic est obsol�te.

Directives

Sujets

Voir aussi

top

Les variables d'environnement CGI

Le serveur va d�finir les variables d'environnement CGI comme d�crit dans la Sp�cification CGI, de la mani�re suivante :

PATH_INFO
Cette variable ne sera pas disponible si la directive AcceptPathInfo est explicitement d�finie � off. Par d�faut, si la directive AcceptPathInfo n'est pas d�finie, mod_cgi acceptera des informations de chemin (en ajoutant /infos/chemin apr�s le nom du script dans l'URI), alors que le serveur de base retournera une erreur 404 NOT FOUND pour les requ�tes contenant des informations de chemin suppl�mentaires. Ne pas d�finir la directive AcceptPathInfo a le m�me effet sur les requ�tes avec mod_cgi que de la d�finir � On.
REMOTE_HOST
Cette variable ne sera d�finie que si la directive HostnameLookups est d�finie � 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.
REMOTE_IDENT
Cette variable ne sera d�finie que si la directive IdentityCheck est d�finie � 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.
REMOTE_USER
Cette variable ne sera d�finie que si le script CGI fait l'objet d'une authentification.
top

D�bogage des scripts CGI

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. Les directives qui suivent permettent une journalisation plus d�taill�e des erreurs.

Format du fichier journal CGI

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 :

%% [date] requ�te
%% �tat HTTP nom du script CGI

Si le script CGI n'a pas pu d�marrer, le fichier journal contiendra les deux lignes suppl�mentaires suivantes :

%%erreur
message d'erreur

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 :

%requ�te
Tous les en-t�tes de requ�te HTTP re�us
Les entit�s POST ou PUT (s'il en existe)
%r�ponse
Tous les en-t�tes g�n�r�s par le script CGI
%stdout
la sortie standard CGI
%stderr
la sortie d'erreurs standard CGI

(Les parties %stdout et %stderr seront absentes si le script n'a rien envoy� sur la sortie standard ou la sortie d'erreurs).

top

ScriptLog Directive

Description:Chemin du fichier journal des erreurs du script CGI
Syntaxe:ScriptLog chemin fichier
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_cgi, mod_cgid

La directive ScriptLog permet de d�finir le chemin du fichier journal des erreurs du script CGI. Si cette directive n'est pas d�finie, aucune journalisation des erreurs n'est effectu�e. Si elle est d�finie, toute erreur CGI sera enregistr�e dans le fichier dont le nom est fourni en argument. S'il s'agit d'un chemin de fichier relatif, il est consid�r� par rapport au r�pertoire d�fini par la directive ServerRoot.

Exemple

ScriptLog logs/cgi_log

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 User. Ceci implique que le r�pertoire dans lequel se trouve le journal doit �tre accessible en �criture pour cet utilisateur, ou bien que le fichier est cr�� manuellement et accessible en �criture pour cet utilisateur. Si vous placez le journal du script dans votre r�pertoire principal des journaux, ne modifiez JAMAIS les permissions de ce dernier afin de le le rendre accessible en �criture par l'utilisateur sous lequel les processus enfants s'ex�cutent.

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 terme de performances et d'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.

top

ScriptLogBuffer Directive

Description:Taille maximale des requ�tes PUT ou POST qui seront enregistr�es dans le journal du script
Syntaxe:ScriptLogBuffer octets
D�faut:ScriptLogBuffer 1024
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_cgi, mod_cgid

Cette directive permet de limiter 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 permet de modifier cette taille maximale, dont la valeur par d�faut est de 1024 octets.

top

ScriptLogLength Directive

Description:Taille maximale du fichier journal des scripts CGI
Syntaxe:ScriptLogLength octets
D�faut:ScriptLogLength 10385760
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_cgi, mod_cgid

La directive ScriptLogLength permet de d�finir la taille maximale du fichier journal des scripts CGI. Comme le fichier journal accumule une grande quantit� d'informations par erreur CGI (tous les en-t�tes de la requ�te, toutes les sorties du script), il peut vite atteindre une grande taille. En limitant la taille du fichier, cette directive permet d'�viter les probl�mes que causerait sa croissance sans limites. Lorsque le fichier a atteint cette taille maximale, plus aucune information n'y est enregistr�e.

Langues Disponibles:  en  |  fr  |  ja  |  ko 

top

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.