Exercice : un script CGI pour Apache
Vous avez déployé du contenu .html sur mon serveur unixshell.hetic.glassworks.tech
dans un exercice précédent.
On peut aussi demander à Apache, au lieu juste de servir un fichier static, d'exécuter un script et renvoyer le résultat de ce script.
En pratique, Apache va récupérer le résultat du stdout
de notre script, et le renvoyer au client.
Pour ce faire, il y aura quelques modifications à apporter :
Dans votre fichier
.htaccess
il faut activer l'exécution des scripts via le modulecgi
:
Si vous avez configuré vous même votre serveur Apache, il faut être sur d'avoir activé la lecture de
.htaccess
. Vous l'activez, site par site, dans/etc/apache2/sites-enabled/000-default.conf
:Ensuite, vous redémarrez Apache avec :
systemctl restart apache2
Ensuite on crée un script avec extension
.cgi
. Par exemple,index.cgi
:
Modifiez les droits de ce fichier pour le rendre exécutable :
A noter, si vous êtes administrateur de ce serveur, il faut d'abord activer le module CGI avec :
Vous pouvez ensuite consulter ce fichier à :
Rédigez un fichier text qui s'appelle "greeting.txt" et qui contient un message de bienvenue pour votre visiteur, par exemple:
Adaptez le script index.cgi
pour lire ce fichier (avec cat
par exemple), et renvoyer le résultat à l'utilisateur. L'idée est qu'on puisse modifier les contenus du fichier greeting.txt
sans devoir modifier notre script.
Malgré le contenus de notre fichier greeting.txt
, il faut toujours terminer la page avec le texte : Fin de page!
.
Est-ce que les caractères spéciaux s'afficher correctement ? Comment résoudre ce problème ?
Dernière mise à jour