# TCExam :: Installazione

## Indice

- Struttura generale
- Requisiti minimi
- Configurazione dell'ambiente operativo
- Installazione TCExam
  - Installazione automatica
  - Installazione manuale
    - Modifica dei file di configurazione
    - Installazione del database
  - Post installazione
- Configurazione del sistema
- Accesso e Sicurezza

## Struttura generale

Il sistema TCExam è essenzialmente formato da tre entità:

- Il Database dove i dati vengono archiviati in record e tabelle.
- Il software TCExam sotto forma di file gerarchicamente organizzati in cartelle (directory) e sottocartelle.
- Gli utenti, le persone che accedono al sistema, siano essi amministratori o semplici utenti.

Il database ed i file di sistema di TCExam possono essere localizzati su uno o più internet/intranet server, gli utenti possono accedere al sistema con una connessione internet/intranet ed un moderno Web-browser.

## File System

Al fine di garantire una maggior sicurezza ed una migliore organizzazione logica, i file del software TCExam sono stati suddivisi in tre aree distinte:

### admin

Contiene l'area di amministrazione del sistema.
L'accesso a quest'area è riservato agli amministratori.

cartella | descrizione
--- | ---
code | contiene i file di programma dell'area di amministrazione
config | contiene i file di configurazione per l'area di amministrazione
doc | contiene documentazione e licenze
log | in questa cartella verranno memorizzati i file di log relativi all'area di amministrazione
styles | contiene i fogli di stile CSS per l'area di amministrazione

### shared

Contiene le risorse condivise utilizzate sia dal sistema di amministrazione (admin) che dal sito pubblico (public).

cartella | descrizione
--- | ---
barcode | contiene un'applicazione di terze parti per la generazione dei codici a barre
code | contiene i file di programma condivisi (principali funzioni di TCExam)
config | contiene i file di configurazione generali
jscripts | contiene programmi javascript condivisi
pdf | contiene una libreria di terze parti per la generazione di documenti PDF
phpmailer | contiene una libreria di terze parti per l'invio di email

### public

Contiene le risorse accessibili agli utenti generici.

cartella | descrizione
--- | ---
code | contiene i file di programma specifici per l'area pubblica
config | contiene i file di configurazione dell'area pubblica
log | in questa cartella verranno memorizzati i file di log generati dall'area pubblica
styles | contiene i fogli di stile CSS per l'area pubblica

### cartelle restanti

cartella | descrizione
--- | ---
cache | qui verranno archiviati i file temporanei e le immagini inviate tramite l'apposito modulo di upload
fonts | contiene le definizioni dei font PDF
images | contiene le immagini del sistema
install | contiene i file di installazione di TCExam. Per ragioni di sicurezza si consiglia di rimuovere questa cartella al termine dell'installazione.

## Note

- La struttura ed i nomi delle cartelle possono essere modificati in accordo con quanto specificato nel seguente file di configurazione: /shared/tce_paths.php.

[indice]

## Requisiti minimi

Prima di procedere all'installazione di TCExam è necessario verificare i requisiti minimi del sistema:

- Un web server (es: Apache [http://httpd.apache.org/], Microsoft® IIS [http://www.microsoft.com]).
- PHP 5 (http://www.php.net) - indispensabile
- Le seguenti librerie:
  - PHP GD Library 2.0.1 (http://www.boutell.com/gd) - necessaria per le immagini ed i grafici in true color
    Questa libreria andrà installata con:
    - libpng 1.2.2 - supporto immagini PNG
    - jpegsrc.v6b - supporto immagini JPEG
- Uno dei seguenti database:
  - MySQL 4.1+ (http://www.mysql.com)
    - Controlla il link seguente in caso di problemi di autenticazione: http://dev.mysql.com/doc/mysql/en/Old_client.html
  - PostgreSQL 8+ (http://www.postgresql.org)
- Almeno 20MB per i file ed almeno 10MB per il database

Per l'installazione e la configurazione del server web e delle librerie richieste consultate i rispettivi manuali.
I client dovranno essere dotati di un comune Web-browser che supporti XHTML 1.0 e JavaScript 1.2.
[indice]

## Configurazione dell'ambiente operativo

Per il corretto funzionamento di TCExam è necessario configurare il PHP in modo che supporti i sistemi e le librerie sopra indicate, è necessario inoltre che alcuni parametri di PHP siano impostati come segue:
su php.ini

- arg_separator.output = "&amp;"
- magic_quotes_gpc = On
- magic_quotes_runtime = Off
- magic_quotes_sybase = Off

oppure su modulo Apache (/etc/httpd/conf/httpd.conf):

    <IfModule mod_php5.c>
    	php_value arg_separator.output "&amp;"
    	php_value magic_quotes_gpc On
    	php_value magic_quotes_runtime Off
    	php_value magic_quotes_sybase Off
    </IfModule>

Per la configurazione degli aspetti generali del PHP o per diverse modalità di configurazione, fate riferimento alla guida ed alle annotazioni ufficiali sul sito www.php.net.
Sarà inoltre necessario controllare le quote disco degli utenti che dovranno essere sufficienti a gestire i file ed il database.
NOTA:Se utilizzate IIS su una versione di Microsoft® Windows non Server, utilizzate l'applicativo software di Microsoft MetaEdit 2.2 per modificare il numero di massime connessioni contemporanee consentite ed i timeout di IIS:

- LM/W3SVC/MaxConnections 40
- LM/W3SVC/CGITimeout 300
- LM/W3SVC/ROOT/CGITimeout 300

Nota: 300 rappresenta il numero di secondi in 5 minuti.
[indice]

## Installazione

Verificate che l'ambiente operativo sia correttamente installato e configurato così come descritto nei paragrafi precedenti.
Copiate tutto il contenuto della cartella TCExam nella web root del vostro server o in una sottocartella.
Se utilizzate un FTP per trasferire la versione encoded di TCExam, assicuratevi di impostare il trasferimento dei file in modalità binaria prima di inviare i file al server.
A questo punto è possibile procedere in due modi:

### Installazione automatica

Attraverso questo processo è possibile installare automaticamente il database e configurare i parametri di sistema principali.
Modificate i permessi dei seguenti file e directory in modo tale che siano scrivibili dal software (chmod 666 su sistemi unix-like):

- install/
- shared/config/tce_db_config.php
- shared/config/tce_paths.php

Questi file potranno essere reimpostati su sola lettura al termine dell'installazione.
Nel caso in cui il programma di installazione non riuscisse a modificare questi file, sarà sempre possibile modificarli manualmente come descritto nel paragrafo successivo.
Usando un comune web browser (programma di navigazione internet come Microsoft® Internet Explorer, Mozilla o Netscape®) collegatevi all'indirizzo in cui si trova il programma di installazione di TCExam: http://<host>/install/install.php
Se l'ambiente operativo è correttamente configurato dovreste vedere il modulo di installazione di TCExam.
Nota che:
Data la criticità di questo componente, il programma di installazione si presenta solo ed esclusivamente in lingua inglese.
Il processo di installazione eliminerà qualsiasi dato delle precedenti installazioni di TCExam, se ci si trova in questo caso sarà quindi opportuno fare delle copie (backup) dei dati.
Per procedere all'installazione sarà necessario compilare opportunamente il modulo e premere il pulsante INSTALL.
Di seguito l'elenco dei campi richiesti dal modulo di installazione:

- db type: tipo di database utilizzato (il predefinito è MySQL)
- db host: nome dell'host del database (solitamente localhost)
- db port: porta database (solitamente 3306 per MySQL o 5432 per PostgreSQL)
- db user: nome dell'utente del database (solitamente è root)
- db password: password utente per l'accesso al database
- db name: nome del database (solitamente TCExam). Sarà necessario cambiare il nome solo nel caso in cui nello stesso sistema esistano altre copie di TCExam.
- tables prefix: prefisso da aggiungere al nome delle tabelle (solitamente tce_)
- host URL: il nome di dominio del vostro sito (ad es: http://www.host.com)
- relative URL: percorso a partire dalla root del webserver dove sono stati copiati i file di TCExam (solitamente / oppure /<percorso ad TCExam>/)
- TCExam path: percorso reale completo della directory dove è stato installato TCExam (ad esempio: /usr/local/apache/htdocs/TCExam/ oppure c:/Inetpub/wwwroot/TCExam/)
- TCExam port: porta di connessione http predefinita (solitamente 80).

Se l'installazione è andata a buon fine il sistema sarà pronto per la sua prima esecuzione.
A questo punto si potrà rimuovere la cartella install dal server e ripristinare i permessi di sola lettura nei file di configurazione.
In caso contrario si potrà completare o ripetere l'installazione usando la procedura manuale descritta di seguito.
[indice]

### Installazione manuale

Per installare manualmente TCExam occorre modificare i file di configurazione ed installare il database.

#### Modifica file di configurazione

I file e le costanti di configurazione essenziali per l'avvio di TCExam sono:

- shared/config/tce_db_config.php
  - K_DATABASE_TYPE (tipo di database, solitamente MYSQL oppure POSTGRESQL)
  - K_DATABASE_HOST (nome dell'host del database, solitamente localhost)
  - K_DATABASE_NAME (nome del database, solitamente TCExam)
  - K_DATABASE_USER_NAME (nome dell'utente del database, solitamente è root)
  - K_DATABASE_USER_PASSWORD (password per l'accesso al database)
  - K_TABLE_PREFIX (prefisso da aggiungere al nome delle tabelle, solitamente tce_)
- shared/config/tce_paths.php
  - K_PATH_HOST (il nome di dominio del vostro sito ad es: http://www.host.com)
  - K_PATH_PHPMYEXAM (percorso a partire dalla root del webserver dove sono stati copiati i file di TCExam, solitamente / oppure /<percorso a TCExam>/)
  - K_PATH_MAIN (percorso reale completo della directory dove è stato installato TCExam, ad esempio: /usr/local/apache/htdocs/TCExam/ oppure c:/Inetpub/wwwroot/TCExam/)
  - K_STANDARD_PORT (porta di comunicazione http, solitamente 80)

#### Installazione del database

All'interno della cartella install sono contenuti i file SQL che contengono lo schema ed i dati del database:

- mysql_db_structure.sql - contiene la struttura del database MySQL
- pgsql_db_structure.sql - contiene la struttura del database PostgreSQL
- firebird_db_structure.sql - contiene la struttura del database Firebird
- db_data.sql - contiene i dati predefiniti del database

Se si desidera cambiare il prefisso delle tabelle sarà necessario usare un editor di testi che abbia una funzione cerca e sostituisci e operare le seguenti sostituzioni:

- Nel file ..._db_structure.sql sostituire CREATE TABLE tce_ con CREATE TABLE vostroprefisso
- Nel file db_data.sql sostituire INSERT INTO tce_ con INSERT INTO vostroprefisso

Per eseguire i file SQL potete usare i comandi di shell dei rispettivi database.
Esempio MySQL:

    mysql
    mysql> CREATE DATABASE TCExam;
    shell> mysql TCExam < db_structure.sql
    shell> mysql TCExam < db_data.sql

Nell'esempio precedente si è supposto che il nome del database fosse TCExam.
In alternativa potete utilizzare un'applicazione esterna (es: phpMyAdmin, phpPgAdmin, pgAdmin3, ...) per la gestione del database col la quale potete creare il database ed eseguire i file SQL attraverso l'apposito comando.
[indice]

### Post installazione

Una volta terminato il processo di installazione occorre:

- eliminare la cartella install che non è più necessaria e rappresenta un pericolo per la sicurezza dell'attuale installazione
- impostare a sola lettura (chmod -R 644 su sistemi unix-like) i permessi dei file nelle cartelle:
  - admin/config/
  - shared/config/
  - public/config/
- impostare opportunamente i permessi per quelle cartelle che dovranno essere accessibili in scrittura dal software TCExam (chmod -R 666):
  - admin/log
  - cache
  - images
  - public/log
- impostare nel dettaglio i file di configurazione come indicato nel paragrafo successivo

[indice]

## Configurazione del sistema

Terminata l'installazione automatica, TCExam dovrebbe essere in grado di sfruttare tutte le sue funzioni.
È possibile personalizzare alcune impostazioni e caratteristiche di base, modificando i seguenti file di configurazione:

- shared/config/lang/ - file di lingua
- shared/config/tce_config.php - configurazione generale del sistema
- shared/config/tce_db_config.php - configurazione database
- shared/config/tce_email_config.php - configurazione relativa al sistema di generazione ed invio delle email
- shared/config/tce_general_constants.php - costanti di uso generale
- shared/config/tce_mime.php - associazioni MIME alle estensioni dei file
- shared/config/tce_paths.php - percorsi file e directory all'interno del sistema
- shared/config/tce_pdf.php - configurazione del formato dei documenti PDF e delle intestazioni
- admin/config/tce_auth.php - impostazione livello di accesso ai moduli di amministrazione
- admin/config/tce_config.php - configurazione generale pannello di amministrazione
- public/config/tce_config.php - configurazione generale dell'area pubblica

[indice]

## Accesso e Sicurezza

Una volta terminate le fasi di installazione e configurazione sopra descritte potete accedere al sistema collegandovi col browser all'indirizzo http://<host>/admin/code/index.php ed usando i seguenti dati:

- nome: admin
- password: 1234

Al fine di proteggere il vostro sistema e garantirvi un accesso esclusivo, ricordatevi di cambiare la password tramite il modulo Utenti. Sempre tramite questo modulo potete anche inserire i vostri dati e le vostre preferenze.
Per ottenere un maggior livello di sicurezza si consiglia vivamente di proteggere l'intera cartella admin con un sistema di autenticazione utente web-based.
Uno dei modi più semplici e sicuri per proteggere una cartella su un server Apache consiste nell'utilizzare l'autenticazione Htaccess. Per maggiori informazioni consultate http://httpd.apache.org/docs/howto/htaccess.html.
Se usate un diverso web server consultate la relativa documentazione.
[indice]