« Apache/CGI » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
intro plus pédagogue
Ligne 5 :
 
==Scripts CGI==
Un programmeLe CGI peut({{w|Common êtreGateway écritInterface}}) est une norme permettant à Apache d'exécuter des programmes écrits en n'importe quel langage ([[Bash]], [[C]], [[Java]], [[Perl]], [[PHP]], bash[[Python]]...), du moment qu'il est exécutable et qu'il respecte certaines contraintes d'entrées/sortie.
 
===Configurer l'accès aux scripts CGI===
Pour qu'Apache prenne en charge les scripts, il est nécessaire d'effectuer un minimum de paramétrage dans la configuration du site.
 
La directive <code>ScriptAlias /cgi-bin/ ''/chemin des scripts/''</code> (de httpd.conf) précise le nom du répertoire où Apache est autorisé à exécuter des scripts CGI<ref>http://httpd.apache.org/docs/current/fr/howto/cgi.html</ref>.
 
Exemple Unix :
Ligne 17 ⟶ 19 :
Le chemin <code>/cgi-bin</code> n'existe pas vraiment, il est dirigé vers <code>/var/www/cgi-bin</code>, et cela permet d'écrire des URL comme <code><nowiki>http://serveur/cgi-bin/mon_script</nowiki></code>.
 
La clause suivante active l'option <code>ExecCGI</code> dans <code>/var/www/cgi-bin</code>, ce qui autorise Apache à exécuter les scripts sur le serveur :
<Directory /var/www/cgi-bin>
Options ExecCGI
Ligne 34 ⟶ 36 :
 
===Écrire un programme CGI===
Le CGI (Common Gateway Interface) n'est pas un langage, c'est une norme.
Un programme CGI peut être écrit en n'importe quel langage (C, Java, PHP, bash...), du moment qu'il est exécutable et qu'il respecte certaines contraintes d'entrées/sortie.
 
La contrainte principale concerne la sortie du programme.
Si un programme CGI génère des données sur sa sortie standard, il doit les précéder d'un header http permettant de les identifier.