Pricident Suivant Table des matihres

1. Introduction

1.1 La définitions d'un script CGI

En simplifiant, un script CGI est tout simplement un programme pouvant être exécuté par un serveur HTTP.

1.2 Pourquoi utiliser les scripts CGI

Vous savez créer des pages au format HTML (Hyper Text Markup Language) et les publier sur le WEB (World Wide Web). Ainsi, vous maitrisez les bases de HTML (voir même tous les détails de HTML 3.2), et vous êtes alors prêt(e) à passer à l'étape suivante: la création et gestion de pages dynamiques, et l'interfaçage avec des programmes externes.

Vous pourrez alors effectuer des traitements automatiques à partir de vos pages HTML. Un exemple classique nous étant fourni par les moteurs de recherche qui, à partir de mots clés saisis dans un formulaire, vous affichent l'ensemble des pages au format HTML contenant ces mots clés. La recherche étant effectuée par un programme externe.

La solution est l'utilisation de la Common Gateway Interface (CGI). CGI est une interface permettant l'exécution de programmes externes par un serveur HTTP. Plus généralement, CGI est en fait un standard pour l'écriture de passerelles entre des serveurs d'informations tel que HTTP et des programmes externes. L'interface CGI permet de faire communiquer le programme et le serveur HTTP.

1.3 Prérequis et choix techniques

Dans ce document, je suppose connu les bases du langage HTML, le minimum pour pouvoir faire une page. Pour l'écriture des programmes, la connaissance d'un langage de programmation plus ou moins évolué est bien entendu nécessaire (par exemple, C, Perl, Python ...). Nous supposons un serveur Web tournant sur une machine Unix (tous les exemples présentés dans ce document ont été réalisés sur une machine Linux 2.0 et le serveur HTTP Apache 1.2b3).

1.4 Installation du serveur Web

Autant l'écriture de pages au format HTML nécessitait juste un navigateur pour visualiser le résultat, autant l'écriture de scripts CGI nécessite la présence d'un serveur HTTP tournant sur la machine (en effet, n'oublions pas que c'est le serveur qui exécute le programme).

Donc première étape, il nous faut installer un serveur HTTP. Notre choix se porte sur Apache ( http://www.apache.org/. Il est puissant, largement le plus utilisé (40% environ des sites) et libre. On récupère la dernière version sur, par exemple, ftp://ftp.ibp.fr/pub/www/apache/dist ou sur le site officiel : ftp://ftp.apache.org/pub/apache/dist. Une fois l'archive récupérée, on désarchive le fichier apache_1.2b8.tar.gz (version 1.2 beta 8 ou une version ultérieure):\

tar zxvf apache_1.2b8.tar.gz

On va dans le répertoire créé, on lit les docs d'installation. En gros, en résumant, cela donne cela :

cd apache_1.2b8
cd src
cp Configuration.tmpl Configuration
make 
cd ..
mkdir -p /usr/local/etc/httpd
cp -a . /usr/local/etc/httpd

Les fichiers de configuration du serveur se trouvent alors dans le répertoire /usr/local/etc/httpd/conf. On se déplace dans ce répertoire et on copie tous les fichiers d'exemples sous le nom réel :

cd /usr/local/etc/httpd/conf
cp srm.conf-dist srm.conf
cp access.conf-dist access.conf
cp httpd.conf-dist httpd.conf

Vous n'avez que peu de modifications à apporter à ces fichiers de configuration. Les commentaires présents devant vous permettre de faire les modifications minimales pour que votre serveur s'exécute correctement. En cas de besoin, lisez la documentation livrée avec le serveur.

Par contre, comme le but de ce document est d'écrire des scripts CGI, il faut configurer le serveur pour qu'il puisse exécuter nos programmes. Dans le fichier srm.conf, il faut décommenter la ligne suivante (supprimer le dièse en début de ligne):

#ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/

Ainsi, si votre machine s'appelle yoda, lorsque le navigateur accédera à l'url http://yoda/cgi-bin/date.cgi le serveur saura que le fichier date.cgi se trouve dans le répertoire /usr/local/etc/httpd/cgi-bin et qu'il devra l'exécuter (voir Notions fondamentales).

Vous pouvez également configurer votre serveur pour qu'il puisse exécuter n'importe quel fichier, où qu'il se trouve, pourvu qu'il ait pour extension .cgi. Pour cela, décommentez, dans srm.conf, la ligne suivante:

#AddHandler cgi-script .cgi

Une fois la configuration terminée, pour lancer votre serveur il suffit de taper la commande suivante :

/usr/local/etc/httpd/src/httpd -f /usr/local/etc/httpd/conf/httpd.conf                 

Faites un pspour vérifier que votre serveur s'exécute normalement. Chaque fois que vous modifiez un fichier de configuration, n'oubliez pas de relancer le serveur.

Si vous désirez que votre serveur soit lancé au démarrage de la machine, rajoutez la ligne de commande dans un des fichiers de démarrage (fichiers /etc/rc.*)


Pricident Suivant Table des matihres