Serveur Apache HTTP Version 2.4
Description: | Ex�cution des scripts CGI |
---|---|
Statut: | Base |
Identificateur�de�Module: | cgi_module |
Fichier�Source: | mod_cgi.c |
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.
Le serveur va d�finir les variables d'environnement CGI comme d�crit dans la Sp�cification CGI, de la mani�re suivante :
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
.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.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.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.
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).
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
.
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.
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.
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.