TUTORIELS 
Configurer Apache pour CGI et SSI
Comprendre comment le serveur Apache gère l'exécution des CGI et des fichiers SSI.  (31 mai 2001)
 

Comment modifier la configuration du serveur Apache version 1.3 (mais ce qui suit s'applique aussi à la version 2.0) pour permettre l'utilisation des Server Side Includes (SSI) et des scripts CGI, afin de tester du contenu dynamique ? Cet article supposera que le serveur Apache est déjà installé sur votre plate-forme (Windows ou Unix/Linux) et fonctionne pour délivrer du contenu statique.

La compilation par défaut d'Apache permet d'étendre ses capacités au contenu dynamique, en incluant les modules mod_include et mod_cgi. Assurez-vous que ces modules sont bien présents dans la liste des modules compilés par un:

./httpd -l

depuis le répertoire bin.
Dans le cas contraire, il faut recompiler le serveur, tâche pour laquelle nous renvoyons à la documentation d'Apache (httpd.apache.org).

Configurer Apache pour les SSI
Les fichiers de configuration d'Apache sont situés, sous Unix, dans le répertoire /usr/local/apache/conf (répertoire par défaut) et sous Windows, dans le répertoire c:\Program Files\Apache/conf (idem). Parmi ces fichiers figure httpd.conf, un fichier texte éditable par le bloc-note ou un programme comme vi sous Unix.
En parcourant ce fichier, on constate qu'il comprend de nombreux commentaires précédés du caractère #. Une section, en particulier, nous intéresse ici:

#
# To use server-parsed HTML files
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml


En supprimant les # précédant les commandes AddType et AddHandler, on indique au serveur Apache de renvoyer du texte ou de l'HTML dès qu'il rencontre un fichier avec l'extension .shtml (commande AddType) et de réaliser l'analyse syntaxique (parsing) du contenu (commande AddHandler) au moyen du module mod_include, qui se chargera donc de traduire les instructions SSI.

Ce n'est pas tout. Recherchez les lignes suivantes (ou similaires) du fichier httpd.conf:

<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks MultiViews

Ajouter, à la fin de la deuxième ligne, l'option Includes permet d'exécuter les instructions SSI dans le répertoire htdocs, où sont habituellement placées les pages web. Bien évidemment, si les pages figurent dans un autre répertoire, il faudra adapter le fichier httpd.conf en conséquence.

Après avoir édité le fichier httpd.conf, il faut relancer le serveur (par kill -HUP `cat /usr/local/apache/logs/httpd.pid` sous Unix et apache -k restart sous Windows). Il ne reste plus qu'à tester la nouvelle configuration en faisant afficher, sur votre navigateur, une page contenant des instructions SSI stockées sur le serveur (par exemple http://localhost/test.shtml).

Une autre méthode: XbitHack
La méthode "XbitHack" permet également de faire exécuter des instructions SSI. Il s'agit de placer le "bit d'exécution utilisateur" d'un fichier texte pour qu'Apache traite ce fichier comme un fichier SSI. En pratique, il suffit d'inscrire la directive suivante dans le fichier .htaccess du (ou des) répertoire(s) où figurent les fichiers concernés:

XbitHack status on

Ainsi, Apache traitera tous les fichiers exécutables par l'utilisateur comme des fichiers SSI.

Configurer Apache pour les CGI
La première chose à faire est de s'assurer que, dans le répertoire cgi-bin, les scripts sont exécutables par l'utilisateur (et le groupe).
Les scripts CGI sont permis par la ligne suivante du fichier httpd.conf:

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

ligne qui précise à la fois que les fichiers CGI peuvent être trouvés dans le répertoire /usr/local/apache/cgi-bin, et qu'Apache peut les exécuter en tant que tels. Ecrire un petit script CGI (en Perl ou en Shell) permet de le tester.

Pour plus d'information sur le sur le serveur Apache, nous renvoyons une nouvelle fois à sa documentation. Pour plus d'informations sur les CGI et les SSI, nous renvoyons vers la page correspondante de JDN Développeurs.

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page