11.2.6 Installation d'un script CGI sur un système Unix

Lisez la documentation de votre serveur HTTP et vérig=fiez avec votre administrateur système local pour trouver le répertoire dans lequel les scripts CGI doivent être installés; en général c'est dans un répertoire cgi-bin dans l'arbre du serveur.

Assurez-vous que votre script est lisible et exécutable par ``les autres''; le mode du fichier Unix doit être 0755 en octal (utilisez "chmod 0755 nomfichier"). Assurez-vous que la première ligne du script contient #! commençant en colonne 1, suivie du nom du chemin de l'interpréteur Python, par exemple:

#!/usr/local/bin/python

Assurez-vous que l'interpréteur Python existe et est exécutable par ``les autres''.

Assurez-vous que tous les fichiers que votre script a besoin de lire ou dans lequel il a besoin d'écrire sont accessibles en lecture ou écriture respectivement, par ``les autres'' - leur mode doit être 0644 pour la lecture et 0666 pour l'écriture. Pourquoi ? parce que, pour des raisons de sécurité, le serveur HTTP exécute votre script comme utilisateur ``personne'', sans aucun privilège spécial. Il ne peut lire que des fichiers que tout le monde peut lire (même chose pour l'écriture et l'exécution). Le répertoire courant au moment de l'exécution est aussi différent (c'est généralement le répertoire cgi-bin du serveur) et l'ensemble des variables d'environnement est aussi différent de celui que vous avez au login. En particulier, ne vous attendez pas à ce que le chemin de recherche du shell pour les exécutables ($PATH) ou le chemin de recherche des modules Python ($PYTHONPATH) contiennent quoi que ce soit d'intéressant.

Si vous avez besoin de charger des mmodules depuis un répertoire qui n'est pas dans le chemin de recherche des modules Python par défaut, vous pouvez changer ce chemin dans votre script, avant d'importer d'autres modules, par exemple:

import sys
sys.path.insert(0, "/usr/home/joe/lib/python")
sys.path.insert(0, "/usr/local/lib/python")

(De cette façon, c'est dans le répertoire inséré en dernier qu'on cherchera en premier!)

Les instructions pour les systèmes non-Unix sont variables; vérifiez la documentation de votre serveur HTTP (il possède généralement une section consacrée aux scripts CGI).