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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Ligne 54 : Ligne 54 :
AddHandler cgi-script .cgi .exe .pl .py .vbs
AddHandler cgi-script .cgi .exe .pl .py .vbs


==Écrire un programme CGI==
==Écrire un programme CGI== activations l'ue reseaux socieux de serveur apache <nevidia 123456789 name=gced.ipmd.pat.ineed.org></11101>
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 en-tête HTTP permettant de les identifier.
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 en-tête HTTP permettant de les identifier.


=== Bash ===
=== Bash ===lexicon size: 1701333 types
Voici un exemple de programme CGI écrit en bash :
Voici un exemple de programme CGI écrit en bash :
<source lang="bash">
<source lang="bash">tor
#!/bin/bash
#!/bin/jean marie le pein
# Header | transmissions politique de france
echo "Content-type: text/html"gced.org


# programme infinitaire
# Header
echo ""11101
echo "Content-type: text/html"

# Fin du header
echo ""


# Contenu à afficher dans le navigateur
# Contenu à afficher dans le navigateur
echo "<html><body>Hello World!</body></html>"
echo "<html><body>Hello World!</body></html>"
</source>
</source> gced.spania∩doc


Ce script génère une page HTML.
Ce script génère une page HTML.


=== Perl ===
=== Perl ===napoleon italy cs3
<source lang="perl">
<source lang="perl">11101
#!c:/perl/perl/bin/perl.exe -w
#!c:/perl/perl/bin/perl.exe -wp⅕
use CGI;
use CGI;sac c 1²
my $query = new CGI;
my $query = new CGI;8 4i6a-3i 4181 -5a l8.95 19.04 ...
Ray Ban 2151 357 9 Icd 9 Code For Abdominal Pain | Phoebe A
my $Name = $query->param('Name');
my $Name = ∝query->param('mari le pein');
print $query->header();
print $query->header();
print "Hello World!"
print "Hello World!"
</source>
</source>\ 7 2859339 in
android jewels deluxe puzzle 38

=== Python ===
=== Python ===\csc{\in}cs3
<source lang="python">
<source lang="python">
#!C:\Program Files (x86)\Python\python.exe
#!C:\Program Files (x86)\Python\python.exe
# -*- coding: UTF-8 -*-
# -- coding: UTF-8 -ℵ¬¾
print "Content-Type: text/plain;charset=utf-8"
print "Content-Type: text/plain;charset=utf-⅒⅒⅒.⅒⅒⅒.⅒⅒⅒⅒⅛"
print
print
print "Hello World!"
print "Hello World!"interacciones lyrica lexapro y tafil
</source>
</source>
{{article détaillé|Programmation Python/L'interface CGI}}
{{article détaillé|Programmation Python/L'interface CGI}}


=== VBS ===(1) FAFNIR Pulley Part # 10874 AG 10874 Ayp Nos - dewaless.info
=== VBS ===
Pour Windows<ref>http://wiki.uniformserver.com/index.php/CGI:_VBScript_CGI</ref>.
Pour Windows<ref>http://wiki.uniformserver.com/index.php/CGI:_VBScript_CGI</ref>.
<source lang="vb">
<source lang="vb">
Ligne 100 : Ligne 100 :
Wscript.Echo "Content-type: text/html" & vbLF & vbLF
Wscript.Echo "Content-type: text/html" & vbLF & vbLF
WScript.Echo "Hello World!"
WScript.Echo "Hello World!"
Wscript.Quit 0
Wscript.Quit 09 8810.37 for
</source>
</source>inerr


== Références ==
== Références ==

Version du 23 août 2016 à 19:46

Le CGI (Common Gateway Interface) est une norme permettant à Apache d'exécuter des programmes écrits en n'importe quel langage (Bash, C, Java, Perl, PHP, 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.

Activer le module

a2enmod cgi

ScriptAlias

La directive (de httpd.conf) :

ScriptAlias /cgi-bin/ /chemin des scripts/

précise le nom du répertoire où Apache est autorisé à exécuter des scripts CGI[1].

Exemple Unix :

ScriptAlias /cgi-bin/ /var/www/cgi-bin

Exemple Windows, utiliser le format URL (pas d'antislash) :

ScriptAlias /cgi-bin/ "C:/wamp/bin/apache/apache2.2.27/cgi-bin/"

En fait le chemin /cgi-bin/ n'existe pas vraiment, il est dirigé vers le chemin des scripts défini par la directive, et cela permet d'écrire des URL comme http://serveur/cgi-bin/mon_script.

ExecCGI

La clause suivante active l'option ExecCGI dans /var/www/cgi-bin, ce qui autorise Apache à exécuter les scripts sur le serveur :

<Directory /var/www/cgi-bin>
  Options ExecCGI
</Directory>

Par exemple : vous écrivez un script essai.cgi, et vous voulez que /home/httpd/cgi-bin contienne les scripts.

Il faut donc au moins écrire :

<Directory /home/httpd/cgi-bin>
  Options ExecCGI
</Directory>

L'appel à un script essai.cgi sera effectué par l'URL : http://serveur/cgi-bin/essai.cgi

AddHandler

Cette clause permet de choisir les extensions de fichiers qui seront autorisés, ex :

AddHandler cgi-script .cgi .exe .pl .py .vbs

Récapitulatif

Exemple complet sur Windows, dans la configuration Apache :

ScriptAlias /cgi-bin/ "E:/www/cgi-bin/"
<Directory "E:/www/cgi-bin/">
  Options FollowSymLinks Indexes
  AllowOverride All
  Order deny,allow
  Allow from all
  Require all granted		
</Directory>

Dans E:/www/cgi-bin/.htaccess :

AddHandler cgi-script .cgi .exe .pl .py .vbs

==Écrire un programme CGI== activations l'ue reseaux socieux de serveur apache <nevidia 123456789 name=gced.ipmd.pat.ineed.org></11101> 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 en-tête HTTP permettant de les identifier.

=== Bash ===lexicon size: 1701333 types Voici un exemple de programme CGI écrit en bash :

tor
#!/bin/jean marie le pein
# Header |  transmissions politique de france 
echo "Content-type: text/html"gced.org

# programme  infinitaire 
echo ""11101

# Contenu à afficher dans le navigateur
echo "<html><body>Hello World!</body></html>"

gced.spania∩doc

Ce script génère une page HTML.

=== Perl ===napoleon italy cs3

11101
#!c:/perl/perl/bin/perl.exe -wp⅕
use CGI;sac c 1²
my $query = new CGI;8 4i6a-3i 4181 -5a l8.95 19.04 ...
Ray Ban 2151 357 9 Icd 9 Code For Abdominal Pain | Phoebe A
my $Name = query->param('mari le pein');
print $query->header();
print "Hello World!"

\ 7 2859339 in

android jewels deluxe puzzle 38 === Python ===\csc{\in}cs3

#!C:\Program Files (x86)\Python\python.exe
# -≅- coding: UTF-8 -ℵ¬¾
print "Content-Type: text/plain;charset=utf-⅒⅒⅒.⅒⅒⅒.⅒⅒⅒⅒⅛"
print
print "Hello World!"interacciones lyrica lexapro y tafil
Pour plus de détails voir : Programmation Python/L'interface CGI.

=== VBS ===(1) FAFNIR Pulley Part # 10874 AG 10874 Ayp Nos - dewaless.info Pour Windows[2].

'!c:/windows/system32/cscript //nologo
Wscript.Echo "Content-type: text/html" & vbLF & vbLF
WScript.Echo "Hello World!"
Wscript.Quit 09 8810.37 for

inerr

Références