Capitolo 100.   Installazione e manutenzione generale

100.1   Gazie in un sistema Unix

Gazie(1) è un applicativo gestionale scritto in PHP e JavaScript che si avvale di una base di dati MySQL e di un servente HTTP, in grado di gestire più aziende. Tuttavia esiste la possibilità di eseguire un'installazione multipla dell'applicativo, per gestioni alternative e indipendenti. Ciò che si vuole mostrare qui, a titolo di esempio, è un'installazione manuale collocata nella directory ~/public_html/gazie/ di ogni utente, di un sistema Unix comune.

Figura 100.1. Schema di installazione di Gazie, al quale ci si riferisce.

gazie 4

Come si vede dalla figura, nel nodo principale (nodo 1) sono installati il servente HTTP (assieme all'interprete PHP), Gazie e le utenze personali, ognuna con una propria directory personale. Il DBMS MySQL può risiedere in un secondo elaboratore oppure anche nello stesso nodo principale.

100.1.1   Configurazione del servente HTTP

Si prevede di installare Gazie, da qualche parte a partire dalla directory ~/public_html/ di ogni utente; pertanto, il servente HTTP deve essere configurato di conseguenza. A titolo di esempio, l'estratto seguente riguarda la configurazione di Mathopd, un servente HTTP molto semplice e spartano:

    Control {
        Alias /~
        Location public_html
        UserDirectory On
        ...
    }

Naturalmente, deve essere concesso che i file terminanti con l'estensione .php siano eseguiti automaticamente all'interprete PHP. Nel caso della configurazione di Mathopd, ciò significa avere una direttiva simile a quella seguente, la quale deve però apparire prima dell'estratto appena mostrato:

External {
    /usr/bin/php-cgi { .php .phtml .pht }
}

Nella configurazione del servizio HTTP, vanno tenuti in considerazione anche altri dettagli. In particolare occorre valutare i tempi massimi (timeout) di varie funzioni. Ci sono fondamentalmente due aspetti: il tempo massimo per l'esecuzione di programmi CGI e il tempo massimo per le risposte. Dal momento che Gazie deve produrre e inviare file PDF, questi tempi devono essere sufficienti a fare entrambe le cose. Nel caso della configurazione di Mathopd, viene suggerita una configurazione simile a quella seguente:

Tuning {
        NumConnections 64
        BufSize 12288
        InputBufSize 2048
        ScriptBufSize 4096
        NumHeaders 100
        Timeout 240
        ScriptTimeout 120
}

100.1.2   MySQL

Presso lo stesso elaboratore che ospita il servente HTTP e Gazie, oppure in un altro, è necessario disporre le basi di dati personali per ogni utente, gestite attraverso MySQL. In generale può essere conveniente usare il nome dell'utente, così come viene riconosciuto dal sistema operativo, anche per il nome della base di dati personale e per il nominativo-utente riconosciuto dal DBMS MySQL. Intervenendo come amministratore di MySQL, possono essere impartiti i comandi SQL seguenti relativi all'utenza «tizio». Si opera nella base di dati amministrativa (mysql) per creare la base di dati tizio e l'utenza tizio, con parola d'ordine «erpopen», nella sua versione locale e in quella generale, per tutta la rete:

mysql --host=nodo --user=root --password=password mysql[Invio]

mysql> CREATE DATABASE tizio;[Invio]

mysql> GRANT ALL ON tizio.* TO tizio@'localhost' \
  \     IDENTIFIED BY 'erpopen' WITH GRANT OPTION;
[Invio]

mysql> GRANT ALL ON tizio.* TO tizio@'%' \
  \     IDENTIFIED BY 'erpopen' WITH GRANT OPTION;
[Invio]

mysql> \q[Invio]

Il pacchetto della distribuzione di Gazie contiene, nella directory gazie/setup/, un file con istruzioni SQL, adatto a generare tutte le tabelle necessarie a Gazie per il suo funzionamento. Si tratta di un file con un nome del tipo install_versione.sql; altri file, con nome del tipo update_versione.sql servono per aggiornare le tabelle alla struttura di una nuova versione di Gazie. Ogni utente che ha a disposizione una propria base di dati farebbe bene a predisporre il file ~/.my.cnf con dati simili all'esempio seguente, dove si prende in considerazione il caso di «tizio».

[client]
user     = tizio
password = erpopen

In tal modo, volendo caricare i dati dell'azienda vuota, per la prima volta, potrebbe utilizzare il comando seguente, dove il nome «tizio» rappresenta in questo caso il nome della base di dati:

cat install_versione.sql | \
  \    mysql --host=nodo tizio
[Invio]

Inoltre, nella propria installazione personale di Gazie, ogni utente dovrebbe modificare il file .../config/config/gconfig.php, come dall'estratto seguente:

// Parametri di accesso: server, db, utente, passwd e prefisso
// per le tabelle
$Host     = "nodo";
$Database = "tizio";
$User     = "tizio";
$Password = "erpopen";
$table_prefix = "gaz";

Nell'esempio non è stato precisato in quale nodo si trovi la base di dati di MySQL, quindi, si tratta di sostituire nodo con qualcosa di più appropriato (per esempio potrebbe essere qualcosa del tipo mysql.mio.server.net:3306). Si osservi che, di norma, il prefisso delle tabelle deve rimanere gaz.

100.1.2.1   Copia di sicurezza

Così come è semplice creare a mano la base di dati iniziale di Gazie, è facile anche fare una copia di sicurezza di una gestione già in corso:

mysqldump \
  \            -h nodo \
  \            -u utente \
  \            -pparola_d'ordine \
  \            --add-drop-database \
  \            --complete-insert \
  \            --dump-date \
  \            --hex-blob \
  \            nome_db \
  \            > file_sql
[Invio]

L'esempio mostra il salvataggio della base di dati rappresentata dalla metavariabile nome_db, per produrre il file di testo rappresentato dalla metavariabile file_sql.

100.1.3   PHP: «magic_quotes_gpc = Off»

La configurazione predefinita dell'interprete PHP prevede ciò che si definisce con la direttiva seguente:

magic_quotes_gpc = Off

Tuttavia, può darsi che per qualche motivo, la configurazione globale del sistema preveda qualcosa di diverso. Ma per il funzionamento corretto di Gazie è necessario che tale opzione sia configurata nel modo appena mostrato e a questo proposito è previsto il file .htaccess con un'istruzione utile a informare il servente HTTP di questa opzione richiesta all'interprete PHP.

Purtroppo, il file .htaccess viene recepito solo da alcuni serventi HTTP (soprattutto Apache), mentre viene ignorato da Mathopd e altri serventi alternativi. Per risolvere il problema, nel caso fosse necessario, a causa di una configurazione complessiva conflittuale, si possono predisporre dei file php.ini, contenenti semplicemente la riga già mostrata, collocandoli nelle directory modules/*/ di Gazie (evitando però di lasciare questo file nella stessa directory /modules/).

100.2   Gazie in un sistema MS-Windows

Gazie può essere installato in un qualunque sistema operativo, dove sia possibile gestire una base di dati con MySQL, assieme a un servente HTTP in grado di interpretare correttamente il linguaggio PHP. Per predisporre tutto questo in un sistema MS-Windows, in modo relativamente semplice, si può utilizzare XAMPP, oppure WampServer.(2)

100.2.1   XAMPP in un sistema MS-Windows

XAMPP(3) è un pacchetto che integra Apache, MySQL, PHP e altre funzionalità, facilitandone l'installazione e la configurazione in vari sistemi operativi, tra cui MS-Windows e MacOSX. Una volta scaricato il file di installazione, avviandolo si procede attraverso le fasi descritte intuitivamente da questo video: ogv http://www.youtube.com/watch?v=uEUbNONsmuo. In alternativa si possono vedere le figure successive, prive di didascalia, ma disposte secondo la sequenza corretta.

XAMPP: avvio dell'installazione

XAMPP: progressione dell'installazione

XAMPP: domanda

Should I shortcuts to the startmenu/desktop? (y/n): y[Invio]

XAMPP: domanda

Should I proceed? (y/x=exit setup): y[Invio]

XAMPP: domanda

Your choice? (y/n): n[Invio]

Eventualmente, alla domanda appena posta si può rispondere affermativamente, se si vuole provare a installare XAMPP e Gazie in un'unità di memoria solida USB.

XAMPP: conferma

Press <Return> to continue: [Invio]

XAMPP: conferma

Press <Return> to continue: [Invio]

XAMPP: conclusione dell'installazione

Please choose (1-7/x): x[Invio]

XAMPP va avviato dal menù delle applicazioni, dalla voce {XAMPP for Windows}, {XAMPP control panel}.

XAMPP: avvio

Quando si avvia XAMPP si ottiene un pannello di controllo delle applicazioni che compongono XAMPP stesso. Da lì occorre accertarsi che siano in funzione Apache e MySQL, altrimenti occorre provvedervi con i bottoni che suggeriscono l'avvio dei servizi.

XAMPP: pannello di controllo

Va osservato che i file da pubblicare con l'ausilio di Apache, ovvero del servente HTTP, vanno collocati a partire dalla directory htdocs\. Ammesso che XAMPP sia stato installato nel disco C:, come suggerito dalle figure di questo capitolo, si tratta precisamente della directory C:\xampp\htdocs\. Per verificare la correttezza dell'installazione, si può visualizzare, con il navigatore, la pagina http://localhost/, da dove si deve ottenere una presentazione di XAMPP.

100.2.2   Installazione di WampServer in un sistema MS-Windows

WampServer(4) è un pacchetto che integra Apache, MySQL e PHP, facilitandone l'installazione e la configurazione in un sistema MS-Windows. Una volta scaricato il file di installazione, avviandolo si procede attraverso le fasi descritte intuitivamente dal video: ogv http://www.youtube.com/watch?v=GNQffKmROg8. In alternativa si possono vedere le figure successive, prive di didascalia, ma disposte secondo la sequenza corretta.

WampServer: avvio dell'installazione

WampServer: conferma dell'installazione

WampServer: scelta della directory di installazione

WampServer: opzioni addizionali di installazione

WampServer: riassunto delle azioni da compiere

WampServer: inizio del trasferimento

Viene richiesto di confermare o di specificare il navigatore da utilizzare. Per Gazie è preferibile usare Mozilla o un suo equivalente.

WampServer: explorer

WampServer: firefox

WampServer: fine del trasferimento

WampServer: configurazione PHP

WampServer: conclusione

Quando WampServer è in funzione, appare un'icona nella barra delle applicazioni, da dove è possibile ottenere un menù:

WampServer: barra delle applicazioni

WampServer: menù

Il servizio deve essere avviato, eventualmente richiedendolo espressamente con la voce {Put online}; quindi, per verificare la correttezza dell'installazione, si può visualizzare, con il navigatore, la pagina http://localhost/, da dove si deve ottenere una presentazione di WampServer:

WampServer: home

100.2.3   Installazione di Gazie

Gazie viene installato, manualmente, nella cartella htdocs\ di XAMPP, oppure nella cartella www\ di WampServer, come si vede in questo video: ogv http://www.youtube.com/watch?v=Rd1PDBo5iTw. In pratica dovrebbe trattarsi della directory C:\xampp\htdocs\ o di C:\wamp\www\, rispettivamente. Si parte dall'archivio compresso di Gazie, il quale contiene la directory gazie\: tale directory viene copiata in C:\xampp\htdocs\ o in C:\wamp\www\.

Gazie: copia della directory gazie\\

Gazie: copia all'interno della directory htdocs\\

Gazie: copia in corso

A questo punto, si avvia Gazie, visitando l'indirizzo http://localhost/gazie, ma Gazie si accorge della mancanza della base di dati e propone di passare alla sua creazione:

Gazie: primo avvio senza base di dati

Gazie: inizio della procedura di creazione della base di dati

Gazie: installazione e aggiornamento di Gazie

<installa>

Gazie: installazione e aggiornamento di Gazie

Fatto ciò, l'installazione è completa e si può usare Gazie a partire dall'indirizzo http://localhost/gazie/, da dove si accede inizialmente con il nominativo-utente amministratore e la parola d'ordine password.

Gazie: menù home

100.2.4   Installazione di più gestioni indipendenti

Volendo amministrare delle gestioni separate e indipendenti, è possibile installare più copie di Gazie (ciò può essere particolarmente utile se si vuole provare una versione aggiornata di Gazie prima di utilizzarla per l'amministrazione in corso effettivamente). Per fare questo si procede copiando la directory gazie\ con un altro nome, per esempio gazie2\; quindi, occorre modificare il file gazie2\config\config\gconfig.php. Il contenuto di questo file va modificato come nel listato successivo, dove è evidenziato con un carattere più scuro il valore significativo.

Listato 100.40. Modifica della configurazione di Gazie, per utilizzare una base di dati alternativa a quella standard, in modo da poter disporre di un'altra gestione indipendente.

...
// Parametri di accesso: server, db, utente, passwd
// e prefisso per le tabelle
$Host     = "localhost";
$Database = "gazie2";
$User     = "root";
$Password = "";
$table_prefix = "gaz";
...

Successivamente occorrerebbe procedere nuovamente con l'installazione della base di dati, come già descritto. Si veda eventualmente il video: ogv http://www.youtube.com/watch?v=kvfdC-alt6w.

100.2.5   Copia di sicurezza con phpMyAdmin

I dati gestiti da Gazie sono costituiti da una base di dati di MySQL. All'interno di XAMPP e di WampServer è disponibile anche phpMyAdmin, con il quale è facile fare una copia di sicurezza dei dati, in forma di file sorgente SQL (ogv http://www.youtube.com/watch?v=ZVSjeEMT8Gk, ogv http://www.youtube.com/watch?v=vRPW_itT-b8). Dal menù di XAMPP o di WampServer si avvia phpMyAdmin:

XAMPP: avvio di phpMyAdmin

WampServer: avvio di phpMyAdmin

phpMyAdmin è un'applicazione utilizzata attraverso il navigatore ipertestuale. In questo caso lo si vede in funzione all'interno di Internet Explorer:

XAMPP: phpMyAdmin in funzione

Per salvare una copia della base di dati di Gazie, si seleziona la voce {Esporta}. Nella scheda che appare si deve selezionare il nome della base di dati; in questo caso si chiama precisamente gazie:

phpMyAdmin: esportazione della base di dati gazie

Si devono selezionare le voci {Aggiungi DROP DATABASE} e {Aggiungi DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT}; inoltre ci si deve accertare che la voce {Usa dati esadecimali per BLOB} sia attiva:

phpMyAdmin: esportazione della base di dati gazie

Va richiesto espressamente di salvare in un file. In questo caso si sceglie di usare il nome gazie20091201.sql. Al termine si conferma selezionando il bottone <Esegui>.

phpMyAdmin: esportazione della base di dati gazie

Per ripristinare una base di dati, partendo da un file SQL, si utilizza sempre phpMyAdmin, scegliendo la scheda {Importa}:

phpMyAdmin: importazione

Si deve quindi selezionare il file da recuperare, nella casella {Percorso del file}, quindi si può confermare con il bottone <Esegui>.

phpMyAdmin: importazione

100.2.6   Aggiornamento di Gazie

Quando si vuole aggiornare Gazie, si procede normalmente alla sostituzione dei file che compongono il pacchetto, passando quindi alla conversione delle tabelle della base di dati già utilizzata. Naturalmente, dato che il procedimento potrebbe nascondere delle insidie, prima di pensare a un aggiornamento, occorre avere fatto una copia di sicurezza della base di dati (in modo da poter ripristinare il funzionamento con la vecchia versione di Gazie) ed essere sicuri di saperla ripristinare in caso di necessità (ogv http://www.youtube.com/watch?v=A0Vm3DWDXZY). Si comincia dal modificare il nome della cartella di Gazie, in modo da poter poi estrarre la nuova versione, senza sovrascrivere i file che contiene quella della versione più vecchia:

Gazie: modifica del nome della directory

Successivamente si apre il pacchetto della nuova edizione di Gazie e si copia la cartella gazie\, incollandola a fianco della vecchia cartella, già rinominata:

Gazie: copia della nuova edizione

A questo punto, all'indirizzo http://localhost/gazie si raggiunge la nuova edizione di Gazie, appena installata, ma questa si trova a interagire con la vecchia versione della base di dati. Gazie stesso se ne accorge e invita procedere all'aggiornamento:

Gazie: invito ad aggiornare

È sufficiente seguire l'invito (di fare un clic sul riferimento in evidenza) per passare alla maschera di aggiornamento:

Gazie: avvio aggiornamento

Gazie: conferma aggiornamento

Gazie: fine aggiornamento

Se tutto si conclude correttamente e Gazie, dopo l'aggiornamento, funziona secondo le aspettative, l'aggiornamento è concluso e si può cancellare la cartella contenente la versione precedente. Se invece le cose non vanno come si attendeva, occorre eliminare la nuova versione di Gazie, ripristinare il nome corretto della cartella della versione precedente e va usato phpMyAdmin per il recupero dei dati allo stato precedente l'aggiornamento.

100.3   Predisposizione di un servizio «on-line»

Gazie potrebbe essere offerto come servizio di un sito specializzato in contabilità. Un'operazione del genere certamente richiede lo studio relativo alle problematiche di sicurezza; tuttavia, qui si vuole mostrare sommariamente come potrebbe essere installato Gazie per consentire un accesso remoto, a più gestioni distinte, ognuna in una propria base di dati, senza entrare nelle problematiche della sicurezza.

Negli esempi del capitolo si dispone di un solo elaboratore in cui è installato MySQL, un servente HTTP e il PHP. Tale elaboratore risulta accessibile dalla rete esterna e il nome a dominio gazie.mio.dominio si risolve nell'indirizzo IP dello stesso.

100.3.1   Servente HTTP

Si vuole offrire l'accesso alla directory /var/www/gazie/ (che inizialmente è vuota) attraverso il servente HTTP, mentre le varie versioni di Gazie vengono installate in /usr/lib/gazie-versione/. A titolo di esempio viene mostrato un estratto del file di configurazione di Mathopd, ipotizzando di poter disporre del nome a dominio gazie.mio.dominio per questo servizio.

...
Tuning {
        NumConnections 64
        BufSize 12288
        InputBufSize 2048
        ScriptBufSize 4096
        NumHeaders 100
        Timeout 240
        ScriptTimeout 120
}
...
Server {
    ...
    Virtual {
        Host gazie.mio.dominio
        Control {
            Alias /
                Location /var/www/gazie
                Access {
                    Deny 0/0
                    Allow 0/0
                }
        }
    }
    ...
}

100.3.2   Struttura di «/var/www/gazie/» e associazione alle basi di dati

La directory /var/www/gazie/ deve andare a contenere una serie di sottodirectory, corrispondenti a un numero progressivo: /var/www/gazie/1/, /var/www/gazie/2/,... In ogni sottodirectory si va a realizzare una struttura di directory e collegamenti simbolici, con la quale si riproduce il contenuto di una certa versione di Gazie, collocata in realtà nella directory /usr/lib/gazie-versione/. Per esempio, così:

mkdir /var/www/gazie/1[Invio]

cp -dpRl /usr/lib/gazie-versione /var/www/gazie/1[Invio]

Una volta fatto questo lavoro, i collegamenti /var/www/gazie/*/config/config/gconfig.php vanno rimpiazzati con copie dei file rispettivi e modificati, in modo da utilizzare ognuno una base di dati differente. L'estratto successivo ipotizza la base di dati e l'utente della stessa denominato gazie1, riferiti a /var/www/gazie/1/config/config/gconfig.php. Si osservi la mancanza di una parola d'ordine:

...
$Host = "localhost";
$Database = "gazie1";
$User = "gazie1";
$Password = "";
$table_prefix = "gaz";
...

100.3.3   Le basi di dati

Ogni gestione di Gazie che si intende realizzare deve avere una propria base di dati. Nell'ipotesi fatta nella sezione precedente, si tratta di crearne con nomi del tipo gazien (n sarebbe un numero intero positivo), associando alle stesse un utente con lo stesso nome. Si tratta di utilizzare istruzioni SQL come quelle seguenti:

mysql mysql[Invio]

Il comando appena mostrato consente di connettersi con la base di dati amministrativa, denominata mysql, in qualità di amministratore; pertanto l'utente (che in questo caso è proprio root) deve disporre di un file ~/.my.cnf configurato correttamente per questo scopo.

mysql> CREATE DATABASE gazien[Invio]

mysql> GRANT ALL ON gazien.* TO gazien@'localhost';[Invio]

mysql> \q[Invio]

A questo punto, però, la base di dati va popolata con le tabelle usate da Gazie, assieme ai dati iniziali predefiniti. Il file che contiene questo può essere collocato proprio nella directory /var/www/gazie/ e da lì caricato:

cat /var/www/gazie/inizio.sql | mysql gazien[Invio]

100.3.4   Conclusione

Una volta realizzato quanto schematizzato nelle sezioni precedenti, a partire da http://gazie.mio.dominio/n/ si trova la gestione n amministrata con Gazie. Per concedere l'uso di una di queste gestioni è sufficiente comunicare la parola d'ordine dell'amministratore di Gazie (amministratore interno alla gestione di quella tale copia).

100.3.5   Predisposizione di un servizio «on-line» con una base di dati unica

Gazie consente di controllare il prefisso usato per le proprie tabelle, nel file gconfig.php. Tuttavia, è anche possibile avviare Gazie, specificando il prefisso che si intende usare, il quale, in tal caso, prevale sulla configurazione del file gconfig.php. Questo metodo consente di installare una sola copia di Gazie, con una sola base di dati, per più gestioni distinte, in base al prefisso delle tabelle.

Per la configurazione del servente HTTP valgono le stesse considerazioni fatte nella sezione 100.3, mentre non ci sono problemi particolari per l'installazione di Gazie, in quanto non è necessario simulare la presenza di più copie e la configurazione del file gconfig.php è unica e riferita a una sola base di dati.

Per selezionare una gestione rispetto a un'altra, in modo da selezionare questo o quel gruppo di tabelle, si avvia login_admin.php aggiungendo ?tp=gaz.... Per esempio, per raggiungere la gestione che ha le tabelle con prefisso gaz123_..., si utilizzerà un URI del tipo http://.../modules/root/login_admin.php?tp=gaz123.

100.4   Installazione presso un servizio esterno

In questa sezione si descrive l'installazione di Gazie presso il servizio http://www.altervista.org, come esempio per altri servizi simili. Va osservato che la gestione di Gazie, nella vita reale, implica la manipolazione e la conservazione di dati personali (per esempio le anagrafiche di clienti e di fornitori), cosa che generalmente comporta la necessità di gestire i sistemi informativi in proprio. Pertanto, l'esempio mostrato vale a fini didattici, per comprendere le problematiche tecniche dell'installazione di Gazie, ma senza esaurire le questioni legali che vanno invece affrontate nella professione.

Per l'esempio che viene qui descritto, si suppone di avere registrato presso http://www.altervista.org il nome appunti2, corrispondente al dominio http://appunti2.altervista.org (video: ogv http://www.youtube.com/watch?v=-_mTFdz3h98). Valgono quindi le convenzioni seguenti presso AlterVista:

Nome Utilizzo
appunti2 Nominativo utente.
http://appunti2.altervista.org Indirizzo da usare per accedere al sito.
ftp://appunti2.altervista.org Indirizzo da usare per accedere al servizio FTP, utilizzando il nominativo appunti2 e la parola d'ordine stabilita in fase di registrazione.
my_appunti2 Nome della base di dati attivabile presso il sito, accessibile però solo localmente attraverso gli script CGI (localhost).

100.4.1   Preparazione e copia di Gazie

Quando l'utenza presso AlterVista è stata creata ed è stato attivata anche la base di dati (è sufficiente la funzionalità base, gratuita), si può procedere con la preparazione di una copia di Gazie, da trasmettere al sito remoto. Questa copia di Gazie deve essere stata estratta in una directory e due file devono essere stati modificati. Il primo è config/config/gconfig.php, dove vanno modificati i dati di accesso alla base di dati:

// Parametri di accesso: server, db, utente, passwd
// e prefisso per le tabelle
$Host     = "localhost";
$Database = "my_appunti2";
$User     = "appunti2";
$Password = "";
$table_prefix = "gaz";

Come si vede, non è necessario specificare la parola d'ordine, perché l'accesso avviene localmente.

L'altro file da ritoccare è quello che serve per popolare la base di dati, il quale non deve contenere le istruzioni di creazione della base di dati stessa. Si tratta del file setup/install/install_versione.sql:

CREATE DATABASE IF NOT EXISTS gazie; eliminare

USE gazie; eliminare

DROP TABLE IF EXISTS `gaz_001agenti`;
CREATE TABLE `gaz_001agenti` (
  `id_agente` int(9) NOT NULL,
  `id_fornitore` int(9) NOT NULL,
  `base_percent` decimal(4,2) NOT NULL,
  ...

Supponendo che questa copia di Gazie si trovi temporaneamente nella directory /tmp/gazie/, occorre provvedere a trasmetterla presso AlterVista, con l'ausilio del servizio FTP. Nella figura successiva si vede l'uso di FileZilla:

Uso di FileZilla per copiare Gazie presso AlterVista

Terminata la copia, si può provare a eseguire Gazie presso AlterVista, in questo caso all'indirizzo http://appunti2.altervista.org/gazie/; tuttavia, non avendo ancora predisposto la base di dati si ottiene necessariamente un errore:

Gazie presso AlterVista: manca la base di dati

100.4.2   Preparazione della base di dati

Con la registrazione dell'utenza presso AlterVista è necessario anche attivare la funzione della base di dati. Questa va poi popolata con le tabella usate da Gazie, caricando il file setup/install/install_versione.sql, modificato in modo da non avere istruzioni per la creazione e selezione della base di dati. In alternativa potrebbe essere caricato un file equivalente, prodotto come copia della propria gestione. AlterVista offre phpMyAdmin per queste operazioni:

Gazie presso AlterVista: uso di phpMyAdmin

Gazie presso AlterVista: uso di phpMyAdmin

Al termine del caricamento, Gazie è pronto per l'uso consueto:

Gazie presso AlterVista in funzione

100.5   GZT: un sistema per la didattica con Gazie

Presso https://docs.google.com/open?id=0B7kc1cYTL1pjNDExMmRkM2QtNDE4MS00NmViLWIyZWQtNmRhNzlhNDk0YmFl è disponibile GZT, un sistema per la didattica con Gazie, installabile ovunque sia disponibile un servente HTTP che possa eseguire codice PHP e MySQL. Il nome del pacchetto di GZT contiene la data di realizzazione e la versione di Gazie che incorpora. È sufficiente estrarre il file dove il servizio HTTP può raggiungerlo, modificando il file gzt/inc/config.inc.php con dati appropriati per raggiungere la base di dati e poche altre informazioni. Quindi si avvia raggiungendo l'URI che permette di aprire la pagina gzt/home.php e tutto il resto viene predisposto automaticamente. Nell'estratto seguente si vedono le parti del file di configurazione che vanno controllate necessariamente:

<?php
...
$gzt_version                = "0.2";
$gzt_server                 = "localhost:3306";
$gzt_db                     = "gztdb";
$gzt_user                   = "gztdb";
$gzt_password               = "gztpassword";
$gzt_tabella                = "gzt_list";
$gzt_gazie_dir              = "5-19";
$gzt_file_sql               = "gazie-".$gzt_gazie_dir.".sql";
$gzt_max_age                = "365";
$gzt_disable_set_time_limit = FALSE;
$gzt_admin_name             = "Tizio Tizi";
$gzt_admin_email            = "tizio.tizi@mia.email";
$gzt_timezone               = "Europe/Rome";
?>

Se il sito presso il quale si installa GZT non consente di usare la funzione set_time_limit() del PHP, occorre modificare l'impostazione della variabile $gzt_disable_set_time_limit, nel modo seguente:

...
$gzt_disable_set_time_limit = TRUE;
...

Per eliminare le gestioni che risultano troppo vecchie, è sufficiente avviare periodicamente robot.php, manualmente o attraverso un comando di Cron, secondo le opzioni fornite dal sito ospitante.

Per avere un'idea di come funziona GZT, si può visitare l'indirizzo http://gzt.informaticalibera.net. Va tenuto in considerazione che un servizio del genere deve poter servire all'uso simultaneo da parte di molte persone; tuttavia, spesso i siti (gratuiti o a pagamento) che possono ospitare GZT, non consentono una frequenza troppo grande di connessioni alla base di dati MySQL. Pertanto, se si intende utilizzare effettivamente nella didattica un'installazione di GZT, occorre fare delle verifiche pratiche sul campo per valutarne la fattibilità.

100.6   Riferimenti


1) Gazie   GNU GPL

2) Allo stato attuale, se è possibile, è preferibile WampServer per il miglior funzionamento di Gazie; con XAMPP, invece, possono manifestarsi degli errori che normalmente sono inesistenti.

3) XAMPP   GNU GPL

4) WampServer   GNU GPL

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net