<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Didacticiel du serveur HTTP Apache : Contenu dynamique bas&eacute; sur CGI - Serveur HTTP Apache Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.5</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Recettes et tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Didacticiel du serveur HTTP Apache : Contenu dynamique bas&eacute; sur CGI</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/cgi.html" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/cgi.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#intro">Introduction</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#configuring">Configurer httpd pour autoriser CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#writing">Ecrire un programme CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#troubleshoot">Mais &ccedil;a ne marche toujours pas !</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#behindscenes">Que se passe-t-il en coulisse</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#libraries">Biblioth&egrave;ques et modules CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#moreinfo">Pour plus d'informations</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="intro">Introduction <a title="Lien permanent" href="#intro" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li></ul></td></tr></table>

    <p>CGI (Common Gateway Interface) d&eacute;finit une m&eacute;thode d'interaction
    entre un serveur web et des programmes g&eacute;n&eacute;rateurs de contenu
    externes, plus souvent appel&eacute;s programmes CGI ou scripts CGI. Il
    s'agit d'une m&eacute;thode simple pour ajouter du contenu dynamique &agrave; votre site
    web en utilisant votre langage de programmation pr&eacute;f&eacute;r&eacute;.
    Ce document est une introduction &agrave; la configuration de CGI sur votre
    serveur web HTTP Apache, et une initiation &agrave; l'&eacute;criture de programmes
    CGI.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="configuring">Configurer httpd pour autoriser CGI <a title="Lien permanent" href="#configuring" class="permalink">&para;</a></h2>
    

    <p>La configuration de httpd doit autoriser l&rsquo;ex&eacute;cution de CGI pour que les
    programmes CGI fonctionnent. Il existe plusieurs mani&egrave;res d&rsquo;y parvenir, qui
    sont d&eacute;crites ci-apr&egrave;s.</p>

    <p>La prise en charge de CGI est assur&eacute;e par deux modules&nbsp;:
    <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code> et <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>.
    <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code> utilise un d&eacute;mon externe d&eacute;di&eacute; pour g&eacute;rer les
    processus CGI et est requis lorsque httpd utilise un MPM thread&eacute; (tel que
    <code class="module"><a href="../mod/event.html">event</a></code> ou <code class="module"><a href="../mod/worker.html">worker</a></code>). <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>
    ex&eacute;cute les programmes CGI directement depuis le processus du serveur et est
    utilis&eacute; avec les MPMs non thread&eacute;s tels que <code class="module"><a href="../mod/prefork.html">prefork</a></code>, ou
    sous Windows. Du point de vue de la configuration, ils sont interchangeables
    &mdash;&nbsp;les directives sont les m&ecirc;mes. Voir les pages de r&eacute;f&eacute;rence de
    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> et <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code> pour les d&eacute;tails de
    l&rsquo;impl&eacute;mentation.</p>

    <div class="warning">Si httpd a &eacute;t&eacute; compil&eacute; avec le support des modules
    partag&eacute;s (DSO), vous devez vous assurer que le module appropri&eacute; est charg&eacute; ;
    vous devez pour cela v&eacute;rifier que la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> correspondante n'a pas &eacute;t&eacute; comment&eacute;e
    dans votre <code>httpd.conf</code>. Pour un MPM thread&eacute;&nbsp;:

<div class="example"><pre class="prettyprint lang-config">LoadModule cgid_module modules/mod_cgid.so</pre>
</div>

     Pour Windows, ou un MPM non thread&eacute; comme prefork&nbsp;:

<div class="example"><pre class="prettyprint lang-config">LoadModule cgi_module modules/mod_cgi.so</pre>
</div>
</div>


    <h3 id="scriptalias">ScriptAlias</h3>
      

      <p>La directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> indique &agrave; httpd qu'un
      r&eacute;pertoire particulier est d&eacute;di&eacute; aux programmes CGI. httpd
      consid&eacute;rera que tout fichier situ&eacute; dans ce r&eacute;pertoire est un
      programme CGI, et tentera de l'ex&eacute;cuter lorsque cette ressource
      fera l'objet d'une requ&ecirc;te client.</p>

      <p>La directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> se pr&eacute;sente comme suit
      :</p>

<div class="example"><pre class="prettyprint lang-config">ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"</pre>
</div>

      <p>Cet exemple est tir&eacute; de votre fichier de configuration
      <code>httpd.conf</code> par d&eacute;faut, si vous avez install&eacute; httpd
      dans son r&eacute;pertoire par d&eacute;faut. La directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> est similaire &agrave; la
      directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, qui
      d&eacute;finit &agrave; quel r&eacute;pertoire particulier doit correspondre un pr&eacute;fixe
      d'URL. <code class="directive">Alias</code> et
      <code class="directive">ScriptAlias</code> sont g&eacute;n&eacute;ralement utilis&eacute;s pour
      acc&eacute;der &agrave; des r&eacute;pertoires situ&eacute;s en dehors du r&eacute;pertoire d&eacute;fini
      par la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. La diff&eacute;rence entre
      <code class="directive">Alias</code> et <code class="directive">ScriptAlias</code>
      r&eacute;side dans le fait que <code class="directive">ScriptAlias</code> indique
      en plus que tout ce qui se trouve sous le pr&eacute;fixe d'URL doit &ecirc;tre
      consid&eacute;r&eacute; comme un programme CGI. Ainsi, l'exemple ci-dessus
      indique &agrave; httpd que toute requ&ecirc;te pour une ressource commen&ccedil;ant
      par <code>/cgi-bin/</code> doit &ecirc;tre servie depuis le r&eacute;pertoire
      <code>/usr/local/apache2/cgi-bin/</code>, et doit &ecirc;tre trait&eacute;e en
      tant que programme CGI.</p>

      <p>Par exemple, si une requ&ecirc;te pour l'URL
      <code>http://www.example.com/cgi-bin/test.py</code> est effectu&eacute;e, httpd
      tentera d'ex&eacute;cuter le fichier
      <code>/usr/local/apache2/cgi-bin/test.py</code> et en renverra la sortie.
      Le fichier doit exister, &ecirc;tre ex&eacute;cutable, et produire une sortie sous le
      format attendu, sinon httpd renverra un message d'erreur.</p>
    

    <h3 id="nonscriptalias">CGI en dehors des r&eacute;pertoires ScripAlias</h3>
      

      <p>Pour des raisons de s&eacute;curit&eacute;, la localisation des programmes
      CGI est souvent restreinte aux
      r&eacute;pertoires d&eacute;finis par <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>. De cette mani&egrave;re, les administrateurs
      peuvent contr&ocirc;ler pr&eacute;cis&eacute;ment qui est autoris&eacute; &agrave; utiliser les
      programmes CGI. Cependant, si les pr&eacute;cautions ad&eacute;quates quant &agrave;
      la s&eacute;curit&eacute; sont prises, il n'y a aucune raison pour que les
      programmes CGI ne puissent pas &ecirc;tre ex&eacute;cut&eacute;s depuis d'autres
      r&eacute;pertoires. Par exemple, vous pouvez autoriser les utilisateurs &agrave;
      enregistrer des contenus web dans leurs r&eacute;pertoires home &agrave; l'aide
      de la directive <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code>. S'ils veulent mettre en
      oeuvre leurs propres programmes CGI, mais n'ont pas l'autorisation
      d'acc&egrave;s au r&eacute;pertoire <code>cgi-bin</code> principal, ils devront
      &ecirc;tre en mesure d'ex&eacute;cuter ces programmes depuis un autre
      r&eacute;pertoire.</p>

      <p>L'autorisation d'ex&eacute;cution des programmes CGI dans un
      r&eacute;pertoire arbitraire se fait en deux &eacute;tapes. En premier lieu, le
      gestionnaire <code>cgi-script</code> doit &ecirc;tre activ&eacute; &agrave; l'aide
      d'une directive <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ou <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code>. En second lieu,
      <code>ExecCGI</code> doit &ecirc;tre sp&eacute;cifi&eacute; dans la directive <code class="directive"><a href="../mod/core.html#options">Options</a></code>.</p>
    

    <h3 id="options">Utilisation d'options explicites pour permettre l'ex&eacute;cution
      des programmes CGI</h3>
      

      <p>Vous pouvez utiliser de mani&egrave;re explicite la directive
      <code class="directive"><a href="../mod/core.html#options">Options</a></code> dans le fichier de
      configuration de votre serveur principal, pour indiquer que
      l'ex&eacute;cution des programmes CGI est permise depuis un r&eacute;pertoire
      particulier :</p>

<div class="example"><pre class="prettyprint lang-config">&lt;Directory "/usr/local/apache2/htdocs/somedir"&gt;
Options +ExecCGI
&lt;/Directory&gt;</pre>
</div>

      <p>La directive ci-dessus indique &agrave; httpd qu'il doit permettre
      l'ex&eacute;cution des fichiers CGI. Vous devez aussi indiquer au serveur
      quels fichiers sont des fichiers CGI. La directive <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> suivante indique au
      serveur qu'il doit traiter tous les fichiers poss&eacute;dant une
      extension <code>cgi</code> ou <code>py</code> en tant que
      programmes CGI :</p>

<div class="example"><pre class="prettyprint lang-config">AddHandler cgi-script .cgi .py</pre>
</div>
    

    <h3 id="htaccess">Fichiers .htaccess</h3>
      

      <p>Le <a href="htaccess.html"><code>tutoriel
      .htaccess</code></a> montre comment activer les programmes
      CGI si vous n'avez pas acc&egrave;s au
      fichier <code>httpd.conf</code>.</p>
    

    <h3 id="userdir">R&eacute;pertoires utilisateurs</h3>
      

      <p>Pour permettre l'ex&eacute;cution en tant que programme CGI de tout
      fichier poss&eacute;dant l'extension <code>.cgi</code> et situ&eacute; dans un
      r&eacute;pertoire utilisateur, vous pouvez utiliser la configuration
      suivante :</p>

<div class="example"><pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html"&gt;
Options +ExecCGI
AddHandler cgi-script .cgi
&lt;/Directory&gt;</pre>
</div>

      <p>Pour indiquer un sous-r&eacute;pertoire <code>cgi-bin</code> d'un
      r&eacute;pertoire utilisateur o&ugrave; tout fichier sera trait&eacute; en tant que
      programme CGI, vous pouvez utiliser ceci :</p>

<div class="example"><pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html/cgi-bin"&gt;
Options ExecCGI
SetHandler cgi-script
&lt;/Directory&gt;</pre>
</div>

    

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="writing">Ecrire un programme CGI <a title="Lien permanent" href="#writing" class="permalink">&para;</a></h2>
    

    <p>La programmation CGI diff&egrave;re de la programmation
    "standard" sur deux points.</p>

    <p>En premier lieu, toute sortie de votre programme CGI doit &ecirc;tre
    pr&eacute;c&eacute;d&eacute;e d'un en-t&ecirc;te <a class="glossarylink" href="../glossary.html#mime-type" title="voir glossaire">MIME-type</a>. Il s'agit d'un
    en-t&ecirc;te HTTP qui indique au client quel type de contenu il re&ccedil;oit.
    La plupart du temps, il se pr&eacute;sente comme suit :</p>

    <div class="example"><p><code>
      Content-type: text/html
    </code></p></div>

    <p>En second lieu, votre sortie doit &ecirc;tre en HTML, ou tout autre
    format qu'un navigateur est en mesure d'afficher. La plupart du
    temps, il s'agira de HTML, mais occasionnellement, vous pouvez &ecirc;tre
    amen&eacute; &agrave; &eacute;crire un programme CGI qui renvoie une image GIF, ou un
    autre type de contenu non-HTML.</p>

    <p>A part ces deux diff&eacute;rences, un programme CGI ressemblera &agrave; tout
    autre programme que vous pourriez &ecirc;tre amen&eacute; &agrave; &eacute;crire.</p>

    <h3 id="firstcgi">Votre premier programme CGI</h3>
      

      <p>L'exemple suivant est un exemple de programme CGI qui permet
      d'afficher une ligne de caract&egrave;res dans votre navigateur. Ecrivez
      ce qui suit, enregistrez le dans un fichier nomm&eacute;
      <code>premier.py</code>, et placez le dans votre r&eacute;pertoire
      <code>cgi-bin</code>.</p>

<div class="example"><pre class="prettyprint lang-python">#!/usr/bin/env python3
print("Content-type: text/html\n")
print("Hello, World.")</pre>
</div>

      <p>La premi&egrave;re ligne indique au syst&egrave;me d&rsquo;exploitation quel interpr&eacute;teur
      utiliser. La premi&egrave;re invocation de print affiche l&rsquo;en-t&ecirc;te content-type
      suivi d&rsquo;une ligne vide (le <code>\n</code> dans la cha&icirc;ne et la nouvelle
      ligne qu&rsquo;ajoute <code>print()</code>), qui mat&eacute;rialise la fin des en-t&ecirc;tes
      HTTP. La seconde invocation de print affiche le corps. C&rsquo;est l&agrave; tout ce
      dont un programme CGI a besoin pour produire une r&eacute;ponse.</p>

      <p>Si vous ouvrez votre navigateur favori et lui indiquez
      l'adresse</p>

      <div class="example"><p><code>
        http://www.example.com/cgi-bin/premier.py
      </code></p></div>

      <p>ou toute autre URL correspondant &agrave; votre programme CGI, Vous
      verrez la ligne <code>Bonjour tout le monde . . .</code>
      s'afficher dans la fen&ecirc;tre de votre navigateur. Ce n'est pas
      extraordinaire, mais si vous y &ecirc;tes parvenu, vous avez de bonnes
      chances d'y parvenir pour tout autre programme plus
      sophistiqu&eacute;.</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="troubleshoot">Mais &ccedil;a ne marche toujours pas ! <a title="Lien permanent" href="#troubleshoot" class="permalink">&para;</a></h2>
    

    <p>Quatre sorties basiques pourront appara&icirc;tre dans votre navigateur lorsque
    vous essayez d'acc&eacute;der &agrave; votre programme CGI depuis le web :</p>

    <dl>
      <dt>Le flux de sortie de votre programme CGI</dt>
      <dd>Impeccable ! Cela signifie que tout fonctionne correctement.
      Si la sortie est correcte mais n'est pas trait&eacute;e correctement par
      le navigateur, assurez-vous d'avoir d&eacute;fini
      <code>Content-Type</code> de mani&egrave;re appropri&eacute;e dans votre
      programme CGI.</dd>

      <dt>Le code source de votre programme CGI ou un message "POST
      Method Not Allowed"</dt>
      <dd>Cela signifie que vous n'avez pas configur&eacute; httpd de mani&egrave;re
      &agrave; ce qu'il puisse traiter votre programme CGI. Relisez la section
      sur la <a href="#configuring">configuration de httpd</a>, et
      essayez de trouver votre erreur.</dd>

      <dt>Un message commen&ccedil;ant par "Forbidden"</dt>
      <dd>Ce type de message est r&eacute;v&eacute;lateur d'un probl&egrave;me de
      droits. Consultez le <a href="#errorlogs">journal des erreurs
      de httpd</a> et la section ci-dessous sur les <a href="#permissions">droits des fichiers</a>.</dd>

      <dt>Un message contenant "Internal Server Error"</dt>
      <dd>Si vous consultez le <a href="#errorlogs">journal des erreurs
      de httpd</a>, vous y trouverez probablement des messages du type
      "Premature end of script headers" (Fin pr&eacute;matur&eacute;e des en-t&ecirc;tes de
      script), &eacute;ventuellement accompagn&eacute;s d'un message d'erreur g&eacute;n&eacute;r&eacute;
      par votre programme CGI. Dans ce cas, il va vous falloir lire
      chacune des sections ci-dessous pour d&eacute;terminer ce qui emp&ecirc;che
      votre programme CGI de g&eacute;n&eacute;rer les en-t&ecirc;tes appropri&eacute;s.</dd>
    </dl>

    <h3 id="permissions">Droits des fichiers</h3>
      

      <p>Souvenez-vous que le serveur ne s'ex&eacute;cute pas sous votre nom.
      En d'autres termes, lorsque le serveur a d&eacute;marr&eacute;, il s'ex&eacute;cute
      avec les droits d'un utilisateur non privil&eacute;gi&eacute; - en g&eacute;n&eacute;ral
      <code>nobody</code>, ou <code>www</code> - et en cons&eacute;quence, il
      aura besoin de droits suppl&eacute;mentaires pour pouvoir ex&eacute;cuter des
      fichiers dont vous &ecirc;tes le propri&eacute;taire. En g&eacute;n&eacute;ral, pour qu'un
      fichier ait des droits suffisants pour &ecirc;tre ex&eacute;cutable par
      <code>nobody</code>, il suffit de lui attribuer des droits
      d'ex&eacute;cution pour tout le monde :</p>

<div class="example"><pre class="prettyprint lang-bash">chmod a+x first.py</pre>
</div>

      <p>En outre, si votre programme doit pouvoir acc&eacute;der en lecture
      et/ou &eacute;criture &agrave; d'autres fichiers, ces derniers devront avoir les
      droits appropri&eacute;s.</p>

    

    <h3 id="pathinformation">Chemin des ex&eacute;cutables (PATH) et variables
      d'environnement</h3>
      

      <p>Lorsque vous lancez un programme depuis la ligne de commande,
      certaines informations sont pass&eacute;es au shell sans que vous vous en
      doutiez. Par exemple, la variable <code>PATH</code> indique au
      shell o&ugrave; il doit rechercher les ex&eacute;cutables auxquels vous faites
      r&eacute;f&eacute;rence.</p>

      <p>Lorsqu'un programme s'ex&eacute;cute depuis le serveur web en tant que
      programme CGI, sa variable <code>PATH</code> n'aura peut-&ecirc;tre pas
      la m&ecirc;me valeur. Tout programme que vous invoquez dans votre
      programme CGI ( comme par exemple <code>sendmail</code>) devra
      &ecirc;tre sp&eacute;cifi&eacute; par son chemin complet, de fa&ccedil;on &agrave; ce que le shell
      puisse le trouver lorsqu'il tentera d'ex&eacute;cuter votre programme
      CGI.</p>

      <p>Un exemple typique de sp&eacute;cification de programme est le chemin
      vers l'interpr&eacute;teur de script (souvent <code>python3</code>) que l'on
      trouve &agrave; la premi&egrave;re ligne de votre programme CGI et qui va
      ressembler &agrave; ceci :</p>

<div class="example"><pre class="prettyprint lang-python">#!/usr/bin/env python3</pre>
</div>

      <p>Assurez-vous qu'il s'agit bien du chemin correct vers
      l'interpr&eacute;teur.</p>

      <div class="warning">
      Lors de l'&eacute;dition de scripts CGI sous Windows, il se peut que des
      caract&egrave;res de fin de ligne soient ajout&eacute;s au chemin de
      l'interpr&eacute;teur. Assurez-vous donc que les fichiers sont bien
      transmis au serveur en mode ASCII. Dans le cas contraire, l'OS
      pourra envoyer des avertissements "Command not found" &agrave; cause des
      caract&egrave;res de fin de ligne non reconnus car consid&eacute;r&eacute;s comme
      faisant partie du nom de fichier de l'interpr&eacute;teur.
      </div>

      

    <h3 id="missingenv">Variables d'environnement manquantes</h3>
      

      <p>Si votre programme CGI d&eacute;pend de <a href="#env">variables
      d'environnement</a> non standards, vous devrez vous assurez que
      ces variables lui sont bien transmises par httpd.</p>

      <p>Lorsque des en-t&ecirc;tes HTTP ne sont pas transmis &agrave; l'environnement,
      assurez-vous qu'ils sont bien format&eacute;s selon la <a href="https://www.rfc-editor.org/rfc/rfc2616">RFC 2616</a>, section
      4.2 : les noms d'en-t&ecirc;tes doivent commencer par une lettre, elle-m&ecirc;me
      suivie de lettres, chiffres ou traits d'union. Tout en-t&ecirc;te dont le nom
      viole cette r&egrave;gle sera ignor&eacute;.</p>

    

    <h3 id="syntaxerrors">Erreurs inh&eacute;rentes au programme</h3>
      

      <p>La plupart des &eacute;checs dans l'ex&eacute;cution d'un programme CGI
      proviennent du programme lui-m&ecirc;me. Ceci est particuli&egrave;rement vrai
      lorsque ce satan&eacute; programme CGI se bloque, alors que vous avez
      appris &agrave; ne plus commettre les deux erreurs pr&eacute;c&eacute;dentes. La
      premi&egrave;re chose &agrave; faire est de vous assurer que votre programme
      s'ex&eacute;cute depuis la ligne de commande, avant de le tester &agrave; partir
      du serveur web. Par exemple, essayez :</p>

      <div class="example"><p><code>
      cd /usr/local/apache2/cgi-bin<br>
      ./premier.py
      </code></p></div>

      <p>(N'invoquez pas l'interpr&eacute;teur <code>python3</code>. Le shell et
      httpd doivent &ecirc;tre capable de le d&eacute;terminer &agrave; partir de <a href="#pathinformation">l'information sur le chemin</a> situ&eacute;e sur
      la premi&egrave;re ligne du script.)</p>

      <p>La premi&egrave;re chose que vous devriez voir affich&eacute;e par votre
      programme est un ensemble d'en-t&ecirc;tes HTTP, comprenant entre autres
      le <code>Content-Type</code>, et suivi d'une ligne vide. Si vous
      voyez quoi que ce soit d'autre, httpd renverra l'erreur
      <code>Premature end of script headers</code> si vous tentez
      d'ex&eacute;cuter le programme depuis le serveur. Voir <a href="#writing">Ecriture d'un programme CGI</a> ci-dessus pour
      plus de d&eacute;tails.</p>
    

    <h3 id="errorlogs">Journalisation des erreurs</h3>
      

      <p>Les journaux d'erreurs sont vos amis. Toute anomalie de
      fonctionnement est consign&eacute;e dans le journal des erreurs et c'est
      ici que vous devez regarder en premier en cas de probl&egrave;me. Si
      l'h&eacute;bergeur de votre site ne vous donne pas acc&egrave;s au journal des
      erreurs, vous avez tout int&eacute;r&ecirc;t &agrave; vous tourner vers quelqu'un
      d'autre. Apprenez &agrave; d&eacute;chiffrer les journaux d'erreurs, et vous
      vous apercevrez que la plupart des probl&egrave;mes seront rapidement
      identifi&eacute;s . . . et r&eacute;solus.</p>
    

    <h3 id="suexec">Suexec</h3>
      

      <p>Le programme <a href="../suexec.html">suexec</a> permet
      d'ex&eacute;cuter les programmes CGI avec des droits diff&eacute;rents selon le
      serveur virtuel ou le r&eacute;pertoire utilisateur dans lequel ils
      se situent. Suexec effectue une v&eacute;rification des droits tr&egrave;s
      stricte, et toute anomalie d&eacute;tect&eacute;e au cours de cette v&eacute;rification
      entra&icirc;nera un echec d'ex&eacute;cution de votre programme CGI avec
      affichage de l'erreur <code>Premature end of script
      headers</code>.</p>

      <p>Pour savoir si vous pouvez utiliser suexec, tapez la commande
      <code>apachectl -V</code>, et regardez le chemin indiqu&eacute; par
      <code>SUEXEC_BIN</code>. Si au d&eacute;marrage d'httpd, ce dernier
      trouve un ex&eacute;cutable <code class="program"><a href="../programs/suexec.html">suexec</a></code> dans ce chemin,
      suexec sera activ&eacute;.</p>

      <p>Si vous ne ma&icirc;trisez pas le fonctionnement de suexec, il vous
      est d&eacute;conseill&eacute; de l'utiliser. Pour d&eacute;sactiver suexec, supprimer
      (ou renommez) l'ex&eacute;cutable <code class="program"><a href="../programs/suexec.html">suexec</a></code>
      point&eacute; par <code>SUEXEC_BIN</code> et red&eacute;marrez le serveur. Si
      apr&egrave;s une lecture de <a href="../suexec.html">suexec</a>, vous
      d&eacute;cidez quand-m&ecirc;me de l'utiliser, tapez la commande <code>suexec
      -V</code> pour voir o&ugrave; se situe le journal de suexec, et utilisez
      ce dernier pour d&eacute;terminer quelles r&egrave;gles vous violez
      &eacute;ventuellement.</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="behindscenes">Que se passe-t-il en coulisse <a title="Lien permanent" href="#behindscenes" class="permalink">&para;</a></h2>
    

    <p>Lorsque vos comp&eacute;tences en programmation CGI seront plus
    pouss&eacute;es, il s'av&eacute;rera int&eacute;ressant pour vous de mieux comprendre ce
    qui se passe en coulisse, et en particulier la mani&egrave;re dont le
    navigateur et le serveur dialoguent entre eux. En effet, bien qu'il
    soit tout &agrave; fait louable d'&eacute;crire un programme qui affiche "Bonjour
    tout le monde . . .", cela ne sert pas &agrave; grand chose.</p>

    <h3 id="env">Variables d'environnement</h3>
      

      <p>Les variables d'environnement sont des valeurs qui gravitent
      autour de vous lorsque vous utilisez votre ordinateur. Elles sont
      tr&egrave;s utiles, &agrave; l'instar de votre chemin par d&eacute;faut (o&ugrave; votre
      ordinateur va rechercher le fichier physique correspondant &agrave; la
      commande que vous avez tap&eacute;e), votre nom d'utilisateur, le type de
      votre terminal, etc... Pour obtenir une liste compl&egrave;te des
      variables d'environnement standards que vous utilisez tous les
      jours, tapez <code>env</code> dans votre interpr&eacute;teur
      de commandes.</p>

      <p>Au cours de la transaction CGI, le serveur et le navigateur
      d&eacute;finissent aussi des variables d'environnement, de fa&ccedil;on &agrave; ce
      qu'ils puissent communiquer entre eux. Ces variables d&eacute;finissent
      entre autre le type de navigateur (Netscape, IE, Lynx), le type de
      serveur (httpd, IIS, WebSite), le nom du programme CGI en cours
      d'ex&eacute;cution, etc...</p>

      <p>Ces variables sont &agrave; la disposition du programmeur CGI, et elles
      constituent 50% de la communication client-serveur. La liste compl&egrave;te des
      variables requises se trouve dans la <a href="https://www.rfc-editor.org/rfc/rfc3875">RFC 3875</a> (Common Gateway
      Interface).</p>

      <p>Ce programme CGI basique en Python permet d'afficher toutes les
      variables d'environnement qui sont &eacute;chang&eacute;es. Deux programmes
      similaires sont fournis avec la distribution de httpd et situ&eacute;s
      dans le r&eacute;pertoire <code>cgi-bin</code>.
      Notez que certaines variables sont
      obligatoires, alors que d'autres sont optionnelles, si bien que
      vous verrez s'afficher certaines variables qui ne font pas partie
      de la liste officielle. De plus, httpd vous propose de nombreuses
      m&eacute;thodes pour <a href="../env.html">ajouter vos propres
      variables d'environnement</a> aux variables de base fournies par
      d&eacute;faut.</p>

<div class="example"><pre class="prettyprint lang-python">#!/usr/bin/env python3
import os

print("Content-type: text/html\n")
for key, value in os.environ.items():
print(f"{key} --&gt; {value}&lt;br&gt;")</pre>
</div>
    

    <h3 id="stdin">STDIN et STDOUT</h3>
      

      <p>L'entr&eacute;e standard (<code>STDIN</code>) et la sortie standard
      (<code>STDOUT</code>) constituent d'autres voies de communication
      entre le client et le serveur. Dans un contexte normal,
      <code>STDIN</code> correspond au clavier, ou &agrave; un fichier fourni
      au programme &agrave; des fins de traitement, et <code>STDOUT</code> &agrave; la
      console ou &agrave; l'&eacute;cran.</p>

      <p>Lorsque vous transmettez un formulaire web &agrave; un programme CGI
      par la m&eacute;thode <code>POST</code>, les donn&eacute;es de ce formulaire
      sont transcrites dans un format sp&eacute;cial et transmises &agrave; votre
      programme CGI via <code>STDIN</code>. Le programme peut alors les
      traiter comme si elles provenaient du clavier ou d'un
      fichier.</p>

      <p>Ce "format sp&eacute;cial" est tr&egrave;s simple. Un nom de champ et sa
      valeur sont reli&eacute;s entre eux par un signe "&eacute;gal" (=), et chacune
      de ces paires nom champ/valeur est s&eacute;par&eacute;e de la suivante par un
      "et" commercial (&amp;). Les caract&egrave;res
      sp&eacute;ciaux comme les espaces, les "et" commerciaux, et les signes
      "&eacute;gal" sont convertis en leur &eacute;quivalent hexad&eacute;cimal pour &eacute;viter
      qu'ils ne g&acirc;chent le travail. La cha&icirc;ne contenant les donn&eacute;es doit
      ressembler &agrave; ceci :</p>

      <div class="example"><p><code>
        name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
      </code></p></div>

      <p>Vous verrez aussi parfois une cha&icirc;ne de ce type accol&eacute;e &agrave; une
      URL. Dans ce cas, le serveur enregistre cette cha&icirc;ne dans la
      variable d'environnement appel&eacute;e <code>QUERY_STRING</code>. On a
      alors affaire &agrave; une requ&ecirc;te de type <code>GET</code>. Votre
      formulaire HTML indique laquelle des m&eacute;thodes <code>GET</code> ou
      <code>POST</code> est utilis&eacute;e pour transmettre les donn&eacute;es, en
      d&eacute;finissant l'attribut <code>METHOD</code> au niveau de la balise
      <code>FORM</code>.</p>

      <p>Votre programme est ensuite charg&eacute; d'extraire les informations
      utiles de cette cha&icirc;ne. Heureusement, des biblioth&egrave;ques et des
      modules sont &agrave; votre disposition pour vous aider &agrave; traiter ces
      donn&eacute;es, et &agrave; g&eacute;rer les diff&eacute;rents aspects de votre programme
      CGI.</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="libraries">Biblioth&egrave;ques et modules CGI <a title="Lien permanent" href="#libraries" class="permalink">&para;</a></h2>
    

    <p>Pour &eacute;crire un programme CGI, il vous est conseill&eacute; d'utiliser
    une biblioth&egrave;que de code, ou un module, qui effectueront une grande
    partie du travail de base pour vous. Ceci vous permettra de diminuer
    le nombre d'erreurs et d'acc&eacute;l&eacute;rer le d&eacute;veloppement.</p>

    <p>Si vous &eacute;crivez des programmes CGI en Python, le module <code>cgi</code>
    de la biblioth&egrave;que standard (obsol&egrave;te dans Python 3.11, supprim&eacute; dans Python
    3.13) prenait en charge l&rsquo;analyse de formulaire. Avec les versions actuelles
    de Python, utilisez le module <code>urllib.parse</code> pour analyser les
    cha&icirc;ne de param&egrave;tres et les donn&eacute;es de formulaire. Pour des applications
    plus complexes, orientez-vous vers un cadriciel WSGI l&eacute;ger, bien que cela
    aille au-del&agrave; du domaine de la CGI traditionnelle.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="moreinfo">Pour plus d'informations <a title="Lien permanent" href="#moreinfo" class="permalink">&para;</a></h2>
    

    <p>La sp&eacute;cification CGI actuelle est disponible dans la <a href="https://www.rfc-editor.org/rfc/rfc3875">RFC 3875</a>
    (Common Gateway Interface).</p>

    <p>Lorsque vous postez une question &agrave; propos d'un probl&egrave;me CGI que
    vous rencontrez, que ce soit dans une liste de diffusion ou dans un
    newsgroup, faites en sorte de fournir suffisamment d'informations
    sur le probl&egrave;me rencontr&eacute;, ce que vous attendiez exactement, et en
    quoi ce qui se produit est r&eacute;ellement diff&eacute;rent de ce que vous
    attendiez, quel serveur vous utilisez, en quel langage votre
    programme CGI a &eacute;t&eacute; &eacute;crit, et, si possible, son code source. Ceci
    permettra une r&eacute;solution plus ais&eacute;e de votre probl&egrave;me.</p>

    <div class="note">Les questions &agrave; propos de probl&egrave;mes CGI ne doivent
    <strong>jamais</strong> &ecirc;tre post&eacute;es dans la base de donn&eacute;es de
    bogues de httpd, &agrave; moins que vous ne soyez s&ucirc;r d'avoir trouv&eacute; un
    probl&egrave;me dans le code source de httpd.</div>
  </div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/cgi.html" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/cgi.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>