Installing WB

Luca Fini (lfini@arcetri.astro.it). September 2006

Introduzione Istallazione Configurazione Uso Copyright F.A.Q.

Copiare i files sul server Web

Per istallare WB occorre innanzitutto identificare due particolari directory relativi al server Web: la directory CGI e la radice dei documenti (document root) To proceed with WB installation you must first locate two directories on La directory CGI contiene le procedure eseguibili (CGI). Può trovarsi in posizioni differenti a seconda della configurazione del server Web, spesso si trova in una delle seguenti posizioni:
/usr/local/apache/cgi-bin
/var/www/cgi-bin
Anche la radice dei documenti può variare a seconda della configurazione. Normalmente si trova in:
/var/www/html
/opt/htdocs
/var/htdocs
e simili.

Note: Se utilizzate il server Apache potete cercare la variabile relativa nel file di configurazione (httpd.conf). Occorre cercare le variabli: ScriptAlias per la directory CGI e DocumentRoot per la radice dei documenti.

L'istallazione di WB rechiede poche operazioni:

  1. Creare una sottodirectory specifica sotto la radice dei documenti dove saranno create le bacheche.
    > mkdir /var/www/html/Bacheche

  2. Trasferire i files della distribuzione WB nella directory creata:
    > tar xvfz wb.tgz
    o anche
    > gunzip -c wb.tgz | tar xvf

  3. Move the program wb.py into CGI directory. E.g.:

  4. spostare i programmiwb.py e wbmgmt.py nella directory CGI:
    > mv wb.py wbmgmt.py /var/www/cgi-bin

  5. Il server http deve avere permessi di scrittura su questa directory. Il modo più semplice consiste nel assegnare come proprietario della directory lo userid utilizzato per lanciare il server. Dovete verificare la vostra installazione; gli userid comunemente usati sono: "apache", o "cochise" o anche "nobody". Potete usare il comando ps come segue:
    : ps -ef | grep httpd
        root   624     1  0   Jul 05 ?        0:09 /usr/local/apache2/bin/httpd 
     cochise 27509   624  0 16:34:03 ?        0:00 /usr/local/apache2/bin/httpd
     cochise 27421   624  0 16:33:05 ?        0:00 /usr/local/apache2/bin/httpd
     ..... more lines ...
    Ignorate la linea con "root", nelle altre viene mostrato lo userid che dovete usare.

    Nota: varie versioni di Unix(Linux) possono evere sintassi un po' diverse per il cpomando ps, ad esempio: ps aux

  6. Per finire dovete personalizzare il file wb.py per adattarlo alle vostre esigenze, le linee interessate sono:
    # Start customization section  
    root_http   = 'http://www.my.domain/Bacheche'  
    root_dir    = '/var/www/html/Bacheche'  
    domain      = 'my.domain'         # e-mail domain  
    smtphost    = 'smtp.my.domain'    # smtp host  
    def_lang    = 'it'                # Default language
    auth_mode   = 'unix'              # Specify user authorization method
    debug       = 0                   # Set to 1 for debug output  
    def_ttl     = 600                 # Session expiring time  
    dolog       = 1                   # Set to 0 for no logging 
    Le prime cinque righe sono le più importanti:

    root_http
    La URL della directory per le Bacheche come richiesta dal vostro server Web. Nell'esempio sopra si tratta di una sottodirectory della radice del server.

    root_dir
    Il path della stessa directory

    domain
    Il dominio di posta elettronica che sarà utilizzato per inviare messaggi.

    smtphost
    L'indirizzo del server di posta elettronica che invia i messaggi.

    def_lang
    Il linguaggio utilizzato per default. (Nota: è possibile definire un linguaggio specifico per ogni bacheca. Si veda le note di configurazione).

    auth_method
    Questa variabile può essere: 'unix', o 'local'. Le operazioni sulla bacheca sono protette dal controllo di accesso basatoi su username/password. Se il valore è 'unix' le credenziali sono verificate prima mediante il controllo degli utenti standard di Unix, e poi in un database di credenziali specifico del programma WB. Se il valore è 'local' viene utilizzato solo il database specifico. Tale database viene gestito utilizzando il programma con le relative opzioni: wb.py -u, wb.py -l, wb.py -r.

  7. Per finire dovete verificare che il programma wb.py possa essere laniato dal server Web e che i files relativi siano accessibili in lettura. Potrebbe essere necessario cambiare i diritti di proprietà o di accesso ai files.

Prova dell'istallazione

  1. Provate a lanciare il programma wb.py da linea di comando:
    > python wb.py wb.py - L.Fini (lfini@arcetri.astro.it). Version 4.11, October 2005 Usage: wb.py -i directory show billboard info wb.py -m [directory] perform billboard maintenance [only on specified dir] wb.py -s bboard doc show document file structure wb.py -u user passwd add user/password to local password file wb.py -v directory show available languages
    Nota: si noti che il programma wb.py può essere utilizzato anche da linea di comando. Ciò è utile in varie occasioni, ad esempio per effettuare manutenzioni periodiche programmate delle bacheche (vedere sotto).

  2. Verificate che il programma possa essere lanciato come comando:
    > /var/www/cgi-bin/wb.py
    E dovete ottenere lo stesso risultato del comando precedente. Se ciò non accade, vertificate il path dell'interprete python:
    > which python
    /usr/bin/python
    Lo stesso path deve comparire nella prima linea del programma wb.py:
    #!/usr/bin/python

  3. Verificate adesso che wb.py possa essere lanciato come applicazione CGI. Aprite con un qualunque browser la URL relativa, ad es:
    http://www.my.domain/cgi-bin/wb.py
    Il risultato dovrebbe essere una pagina con l'elenco delle bacheche disponibili. Nota: Non vedrete nessuna bacheca perché non ne avete ancora definite!

A questo puntio potete passare alla configurazione per definire la prima bacheca.

Manutenzione della directory delle bacheche

I documenti scaduti possono essere rimossi dalla dirfectory delle bacheche. Non è individuare i files: i nomi non sono ovvi e ciascun documento può avere files allegati. WB fornisce una funzione per effettuare la manutenzione dalla sua interefaccia web, ma un amministratore potrebbe desiderare di automatizzare il processo.

&Egrfave; abbastanza semplice attivare una procedura "crontab" che viene lanciata periodicamente (ad esempio una volta al giorno) per utilizzare il programma wb.py con l'opportuna opzione, ad esempio:

> python /var/www/cgi-bin/wb.py -m myboard
Dove "myboard" è il nome della bacheca. Il comando verifica tutti i documenti e cancella quelli scaduti (inclusi gli eventuali allegati).

Ricerca di errori in WB

Quando qualche cosa non funziona, è possibile attivare le funzioni di debug in due modi:
  1. Potete fare una copia del file wb.py chiamandolo wt.py (noater la lettera "t" nel nome), e lanciarlo con il nuovo nome (un "link" simbolico funziona altrettanto bene).
  2. Potete modificare il file wb.py e mettere ad 1 il valore della variabile debug (non dimenticate di rimettere a 0 il valore dopo i test).

Il programma WB in modo debug fornisce molte informazioni aggiuntive ed inoltre abilita la funzione di "traceback" standard dei programmi CGI scritti in Python.