11.2.7 Installare il proprio script CGI in un sistema Unix

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.