Leggere la documentazione del proprio server HTTP e verificare con il proprio amministratore locale di trovare la directory dove lo script CGI deve essere installato; tipicamente questa è una directory chiamata cgi-bin nell'albero delle directory del server.
Verificare che il proprio script sia leggibile e eseguibile da
``altri''; la modalità prevista dai file Unix dovrebbe essere
0755
in ottale (usate "chmod 0755 nomefile").
Accertarsi che la prima riga dello script contenga #!
posizionato alla colonna 1 seguito dal percorso dell'interprete
Python, solitamente:
#!/usr/local/bin/python
Verificare che l'interprete Python esista e che lo script sia eseguibile da ``altri'' (NdT: in pratica eseguibile da chiunque).
Verificare che ogni file di cui lo script necessiti scrivere o leggere
sia leggibile o scrivibile, rispettivamente, da ``altri''; il loro
modo di accesso dovrebbe essere 0644
per essere leggibile e
0666
per essere scrivibile. Questo perché, per ragioni di
sicurezza, il server HTTP esegue lo script come utente ``nobody'',
senza alcun privilegio. Può soltanto leggere (scrivere, eseguire)
file che ognuno può leggere (scrivere, eseguire). La directory
corrente, al momento dell'esecuzione, è anche diversa (è tipicamente
la directory cgi-bin del server) e l'insieme delle variabili
d'ambiente è differente da quelle che si ottengono con l'accesso di
log in. In particolare, non si pensi che il percorso di ricerca
della shell per gli eseguibili (PATH) o quello di ricerca
moduli Python (PYTHONPATH) sia impostato su qualcosa di
interessante.
Se si ha bisogno di caricare moduli da una directory che non è nel percorso predefinito di ricerca moduli di Python, si può cambiare il percorso nello script, prima di importare altri moduli. Per esempio:
import sys sys.path.insert(0, "/usr/home/joe/lib/python") sys.path.insert(0, "/usr/local/lib/python")
(In questo modo, la directory inserita per ultima sarà la prima in cui si effettuerà la ricerca!)
Le istruzioni per i sistemi non Unix sono varie; consultare la documentazione del server HTTP in uso (che solitamente ha una sezione sugli script CGI).
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.