IGWiki Main Page


IGSuite Howto

Search pages

SourceForge Logo

IGSuiteConfiguring IGSuite (Draft) (Document expired)
  Edit WikiPage historyPropertyGet PdfShows a printable version of this pageCan I help you ?

Configurare IGSuite

La configurazione di IGSuite comprende moltissimi aspetti che riguardano sia l'ambiente su cui il sistema opera, ma anche il modo stesso in cui dovrà farlo. Una corretta configurazione di IGSuite, porta ad evitare numerose anomalie e perdite di tempo e la sicurezza di avere a disposizione tutte le feature presenti.

Per configurare "completamente" tutto l'ambiente necessario al funzionamento di IGSuite si consiglia di rispettare il seguente ordine:

  • Installare IGSuite come da documentazione;
  • Configurare il file /tua_directory/cgi-bin/igsuite.conf secondo quanto riportato di seguito;
  • Impostare gli account degli utenti di IGSuite con i relativi permessi come riportato di seguito;
  • Impostare i valori delle "tabelle base" come riportato di seguito;
  • Configurare i vari Client o accertarsi che rispondano ai requisiti sotto elencati;


Il file di configurazione igsuite.conf

Durante l'installazione iniziale di IGSuite, lo script "install.pl" pone una serie di domande atte ad impostare i parametri necessari al funzionamento di IGSuite. In realtà quello che veramente fà tale script, oltre alla copia dei file di sistema, non è altro che la scrittura del file "igsuite.conf". È questo file e solo questo, che definisce tutto l'ambiente offerto dalla suite e dal suo FrameWork.

Finita l'installazione è buona norma raggiungere il file igsuite.conf, all'interno della directory ./cgi-bin/conf/ e "ritoccare" alcuni parametri che di default vengono ignorati da "install.pl" perché non necessari al funzionamento preliminare del sistema.

N.B. Si ricorda che il file igsuite.conf altro non è che una porzione di codice Perl, occorre pertanto rispettare la sintassi di questo linguaggio nel corso delle modifiche del file

La localizzazione del linguaggio

Essendo IGSuite multiutente, ed offrendo ad ogni utente la possibilità di poter scegliere il linguaggio in cui operare, occorre comunicare al sistema quale sarà il linguaggio di "default", quello ad esempio utilizzato quando nessun utente è loggato (nel caso quindi si abbia un utente guest). Tale linguaggio verrà anche utilizzato per applicazioni di IGSuite funzionanti al di fuori dell'ambiente web-based.

$default_lang = 'it';

I linguaggi attualmente supportati da IGSuite sono: it - en - es - fr - pt

Dati generali sulla propria attività

Per dati generali in realtà intendiamo dati anagrafici inerenti la società che utilizzerà IGSuite, quindi:

$soc_name     = 'Ecosystem S.p.A.';
$soc_logo     = 'http://miosito/logo.jpg';
$soc_email    = 'info@ecosystemspa.com';
$soc_address  = 'Via della Solfarata Km 10.750';
$soc_city     = 'Pomezia';
$soc_cap      = '00040';
$soc_country  = 'IT'; 
$soc_prov     = '(RM)';
$soc_fax      = '069100000';
$soc_tel      = '069100000';

Tali dati verranno utilizzati da IGSuite in molte occasioni (intestazione dei documenti commerciali, Intestazioni di reportistiche, generazione mappe, prelievo meteo etc) è opportuno quindi inserirli tutti.

L'account dell'amministratore

Questo account in genere definito durante l'installazione, è quello che ha i maggiori privilegi all'interno di IGSuite, e soprattutto è quello necessario a stabilire la prima connessione subito dopo l'installazione.

$login_admin  = 'lucas';
$pwd_admin    = 'xxxxxxxx';


L'ambiente di Apache

Dato che IGSuite lavora in un ambiente web-based, è di primaria importanza la configurazione di tutti gli aspetti che riguardano il server Web che lo ospita. Fino ad oggi IGSuite non è mai stato utilizzato attraverso un server diverso da Apache, ma funzionando quest'ultimo oramai su ogni piattaforma e garantendo il massimo in termini di prestazioni e stabilità preferiamo affidarci completamente al suo ambiente.

Quando all'interno di un ambiente web-based viene eseguito un CGI questi assume i privilegi dell'utente che in quel momento sta eseguendo il server web (a meno che non venga configurato un comportamento differente all'interno del file di configurazione di Apache). È per questo motivo che è di fondamentale importanza regolare i privilegi dei file e delle directory in cui andrà ad operare IGSuite.

Per la gestione di informazioni/dati IGSuite oltre ad utilizzare l'apporto di un database, sfrutta anche il filesystem locale. In genere nel file di configurazione di Apache questa directory è indicata come Document Root, e in effetti è la directory principale da cui IGSuite creerà tutta la struttura delle directory a lui necessarie per il salvataggio dei vari documenti.

$htdocs_dir = '/igsuite/Documenti';

In genere la Document Root di IGSuite, coincide con la Document Root di Apache in modo che se da un browser digito l'indirizzo del server che ospita IGSuite accedo direttamente alla Document Root di IGSuite. Ma ovviamente non sempre è possibile e non sempre si vuole ottenere questo risultato magari per la necessità di gestire più applicazioni sulla stessa macchina o altre configurazioni particolari. Viene quindi in aiuto la variabile $webpath con la quale è possibile specificare il percorso per raggiungere la Document Root di IGSuite da Web.

$webpath = 'Demo';

In questo modo ad esempio se la Document Root di Apache è uguale a "/srv/www" e la Document Root di IGSuite è uguale a "/srv/www/Demo" permettiamo al sistema di comprendere qual è l'esatto percorso per raggiungere l'albero della struttura di IGSuite via Web.

In via opzionale è possibile indicare a IGSuite il percorso completo dove trovare le immagini (gif) del suo pacchetto.

$img_url = '';

Lasciando un valore nullo IGSuite usa il valore di default che è uguale a: $webpath/images/

L'header per accedere ai documenti via Samba

Questo è un aspetto tanto innovativo quanto complicato da spiegare. L'idea è quella di fornire ai client (in base ai permessi dell'utente) un percorso ai documenti del sistema (documenti commerciali, di qualità, fax, archivio etc) che ne permetta sia l'accesso in lettura che in scrittura. Per ottenere questo dobbiamo fare in modo che il filesystem presente sul server e che abbiamo definito con $htdocs_dir, sia accessibile dai vari client sia in lettura che in scrittura. Per ottenere tale accesso i metodi sono molteplici e variano in relazione alla piattaforma in cui operano rispettivamente il server e il client.

Ipotizzando che il server operi su Linux e il client su Windows possiamo tranquillamente risolvere il problema avviando samba sul server, e creando una "share" che permetta di condividere il filesystem di IGSuite con il client Windows. Ora che siamo riusciti a risolvere questo problema, dobbiamo però istruire IGSuite su quale percorso "offrire" ai client per accedere al documento, percorso che chiaramente varierà anche in funzione del browser utilizzato dal client.

$htdocs_path{'konqueror-linux'} = 'smb://192.168.0.200/fdos/Documenti';
$htdocs_path{'mozilla-win'}     = 'file:///L:/Documenti';
$htdocs_path{'msie-win'}        = 'file:///L|/Documenti';
$htdocs_path{'mozilla-linux'}   = 'file:///L/Documenti';
$htdocs_path{'galeon-linux'}    = 'file:///L/Documenti';

Come si capirà dall'esempio riportato, all'interno del file igsuite.conf si può specificare un tipo di percorso per ogni abbinamento browser/piattaforma presenti sui vari client. Da notare la prima definizione dove si utilizza il protocollo "smb://" presente nelle ultime versioni di Konqueror.

L'accesso a Hylafax

Il server Hylafax viene gestito da parte di IGFax attraverso delle sessioni FTP. Fermo restando il dover accertarsi che sia possibile raggiungere con sessioni Ftp il Server Hylafax, occorrerà anche impostare un valido account su di esso, per fare in modo che IGSuite lo utilizzi per accedervi. Per informazioni su come impostare un account su Hylafax si rimanda alla documentazione ufficiale su http://www.hylafax.org. link

Ad ogni modo è possibile, tra le opzioni di Hylafax, fare in modo di restringere l'accesso non attraverso una login o una password ma anche attraverso l'IP del client; questa è senza dubbio la soluzione migliore per operare con IGSuite.

$hylafax_dir = '/var/spool/fax';
$hylafax_host = '127.0.0.1'; ## Use Ip instead of host
$hylafax_port = '4559';
$hylafax_login = 'root';
$hylafax_pwd = 'xxxxxxxx';

Nel caso $hylafax_login e $hylafax_pwd non vengano specificate, IGSuite utilizzerà la login e la password dell'utente di IGSuite che di volta in volta utilizzerà IGFax. È possibile altrimenti aggiungere nuovi utenti Hylafax attraverso questo comando da digitare sul server dove risiede Hylafax:

faxadduser -a [adminpassword] -p [userpassword] -u [uid] [username]

Oppure senza configurare gli utenti, ecco una configurazione veloce ma assolutamente poco sicura:

  • Accertarsi che il file "hosts.hfaxd" contenga l'IP del server su cui gira IGSuite (nel caso è lo stesso deve contenere 127.0.0.1)
  • Assicurarsi che i "modem" configurati abbiano nel file di configurazione i valori di "RecvFileMode", "LogFileMode" e "DeviceMode" impostati a "0666".


Per maggiori informazioni Vi rimandiamo alle pagine del manuale di Hylafax.

I permessi di default di IGWiki

All'interno di IGWiki è data la possibilità di impostare per ogni pagina i permessi di lettura e quelli di scrittura. Nel nostro file di configurazione igsuite.conf è possibile specificare quali i permessi di default utilizzati quando si crea una nuova pagina.

$def_wiki_show = 'A';
$def_wiki_edit = 'P';

I valori che si possono utilizzare sono:

  • P - Per dare permessi solo al proprietario della pagina.
  • S - Per dare permessi a tutti gli utenti di IG (escluso guest)
  • F - Per dare i permessi agli utenti facenti parte dello stesso gruppo del proprietario della pagina
  • A - Per dare i permessi a tutti indistintamente


L'accesso al Database

IGSuite sfrutta l'accesso ad un RDBM per la gestione dei dati. Attualmente IGSuite funziona senza problemi sia con Postgres ( http://www.postgres.org link ) che con MySql ( http://www.mysql.org link ) è in sperimentazione il driver per SQLite. Quindi è questa la prima impostazione da definire: il driver che IGSuite dovrà utilizzare per accedere all'RDBM

$db_driver    = 'postgres';
o in alternativa
$db_driver    = 'mysql';

Le altre impostazioni sono molto intuibili ma per completezza le elenchiamo (nell'esempio le impostazioni necessarie a Postgres):

$db_name      = 'igsuite';
$db_host      = 'localhost';
$db_port      = '5432';
$db_login     = 'postgres';
$db_password  = 'xxxxxxxx';

Si ricorda che la maggior parte dei problemi di installazione di IGSuite è dovuta ad un'errata configurazione sul Database dell'account $db_login $db_password e più precisamente ai privilegi impostati per tale account.

N.B. chiaramente potendo specificare l'host del db si ha la possibilità di utilizzare un RDBM che non si trova sulla stessa macchina dove gira Apache e IGSuite

Il Menù di IGSuite

Per una migliore trattazione di questa opzione si rimanda a questa Faq


 %menu_item=(
        'Mia voce'=> ['http://link_a_mia_voce','blank_']
        'Mia voce2'=> ['http://link_a_mia_voce2','blank_']
 );


Le applicazioni esterne

Alcune delle feature di IGSuite sono ottenute sfruttando applicazioni esterne, occorre quindi impostare in igsuite.conf il path completo per accedere a tali applicazioni. Si ricorda che nelle direttive di sviluppo di IGSuite incorre l'obbligo di utilizzare solo applicazioni eseguibili allo stesso modo su ogni piattaforma supportata da IGSuite.

$ext_app{gs} = '/usr/bin/gs';
$ext_app{convert} = '/usr/bin/convert';

Queste prime due applicazioni sono necessarie solo per il corretto funzionamento di IGFax e IGFileManager. Rispettivamente, "gs" è GhostScript ( http://www.cs.wisc.edu/~ghost/ link ) e "convert" fa parte del pacchetto ImageMagick ( http://www.imagemagick.org link ).

$ext_app{htmldoc} = '/usr/bin/htmldoc';
$ext_app{htpasswd} = '/usr/bin/htpasswd';
$ext_app{tiffcp} = '/usr/bin/tiffcp';

Rispettivamente "htmldoc" serve a igwiki se si vogliono convertire pagine wiki in formato pdf; "htpasswd" occorre a IGSuite se si vuole gestire accessi HTACCESS di Apache attraverso IGSuite, e "tiffcp" se si vuole attivare una piccola feature di IGArchive che permette di manipolare i file tiff.

L'abiente di IGWebMail

Per configurare IGWebMail dobbiamo suddividere gli aspetti che lo riguardano in due gruppi: l'invio di e-mail, e la ricezione delle e-mail.

Configurare la posta in Uscita

Per inviare messaggi di posta elettronica è possibile configurare IGWebMail in due modi: utilizzando Sendmail, o utilizzando un sever Smtp raggiungibile.

Specificando il path per accedere a Sendmail automaticamente si disabilita l'uso del server Smtp, anche se per esso si sono specificati dei parametri. Quindi abbiamo:

$ext_app{sendmail} = '/usr/sbin/sendmail';

o in alternativa:

$smtp_conf{host} = 'localhost';
$smtp_conf{port} = '25';
$smtp_conf{debug} = 0;


Configurare la posta in Entrata

Anche per la posta in entrata abbiamo due opportunità, possiamo infatti o ricevere la posta da un server Pop3, oppure leggere direttamente un file di spool dei messaggi presenti sul sistema locale.

Specificando un server Pop3 automaticamente si disabilita l'uso dello spoolfile anche se per esso sono stati specificati dei parametri. Quindi abbiamo:

$pop3_conf{host} = 'localhost';
$pop3_conf{port} = 110;
$pop3_conf{login} = '';
$pop3_conf{pwd} = '';

Attraverso $pop3_login e $pop3_pwd possiamo specificare un account unico per l'accesso al server Pop3. È questo un caso particolare che in genere non viene utilizzato.

In IGSuite ogni utente puo' configurare un suo account di posta elettronica spostandosi su Impostazioni->Profilo Personale. Nel caso nessuna login e password sia specificata dall'utente per l'account Pop3, IGSuite utilizzerà la login e la password che ogni utente usa per accedere alla Suite.

I server Pop3 possono essere configurati in molti modi, ad esempio per quanto riguarda la porta d'accesso o il tipo d'autenticazione degli utenti. Nel caso la configurazione standard sopra illustrata non sia sufficente e si riscontrino dei problemi d'accesso si rimanda alla lettura di questa documentazione: pop3 configurazione avanzata.

La configurazione dello spool file offre la possibilità di supportare molti sistemi di posta elettronica con i rispettivi modi in cui vengono salvati i messaggi di posta sul filesystem locale. Originariamente l'accesso agli spool file erano garantiti dall'esecuzione di IGWebMail con suid ma successivamente, per prevenire problemi di sicurezza e facilitare la configurazione di IGSuite, si è deciso di consigliare agli utenti di aggiungere semplicemente l'utente che esegue Apache al gruppo dell'utente che esegue il server di posta elettronica modificando il file /etc/group.

N.B. Si consiglia di preferire l'accesso alla posta in arrivo attraverso un server Pop3 piuttosto che un file spool, anche se quest'ultimo offre maggiori prestazioni in termini di velocità.

Nel caso si usi qmail, occorre impostare le seguenti due variabili, inserendo in $homedirspoolname il nome delle directory che il server di posta crea nelle home degli utenti.

$homedirspools = 'yes';
$homedirspoolname = 'Mailbox';


Nel caso invece in cui il server di posta salvi tutti i messaggi in una stessa directory dando ad ogni spoolfile il nome dell'utente occorre impostare:

$mailspooldir = '/var/spool/mail';


Nel caso il server di posta usi salvare i messaggi di posta elettronica con una struttura tipo /var/spool/mail/u/s/username occorre impostare la seguente variabile a "yes"

$hashedmailspools = 'yes';


N.B. una volta individuata quale l'impostazione che corrisponde al proprio sistema di posta elettronica impostare solo e solo quella con valore "yes" mettendo un valore "no" o commentando tutte le altre.

I permessi degli utenti

All'interno di IGSuite per ogni utente è possibile definire i privilegi di accesso ad ogni risorsa. Chiaramente tali privilegi sono modificabili solo dall'amministratore o da un utente con permessi "SYS_USER_ADMIN".

Per modificare i permessi di un utente cliccare su "Personale" scegliere l'utente per cui si vogliono modificare i permessi e poi cliccare su "Gestione Permessi", apparirà una schermata che elenca tutte le feature di IG e per ognuna offre una serie di check box con i quali abilitare o disabilitare l'accesso all'utente.

Particolare riguardo ha il permesso "SYS_USER_ADMIN" con il quale è possibile definire ulteriori utenti con permessi di Amministratore.

Le tabelle di base

Le tabelle base di IGSuite permettono all'amministratore di impostare dei valori che regolano il funzionamento di alcune feature del sistema. Tali tabelle sono accessibili da "Impostazioni->Gestione tabelle di base" il nome che le identifica è abbastanza autoesplicativo. Durante il primo utilizzo di IGSuite il sistema avviserà l'utente della necessità di valorizzare tali tabelle, non è quindi indispensabile preoccuparsi di inserire da subito tutti i valori.

I Client

In realtà c'è poco da dire sul modo in cui occorre configurare i client su cui utilizzare IGSuite se non nel fatto che bisogna accertarsi che ogni tipo di sistema di cache o proxy del browser utilizzato sia disattivato. Questo chiaramente per non incorrere in pagine che in realtà non sono dinamiche, ma riportare da una cache del browser.

Altro aspetto (se utilizzato) è quello che riguarda l'accesso ai documenti gestiti da IGSuite e più precisamente alla condivisione impostata su Samba per accedere al Document Root di IGSuite (si veda sopra).


Name: configuring igsuite - Revision: 0 - Author: Ortolani Luca (09.10.2006) - Last Editor: Ortolani Luca (09.10.2006) - Category: HowTo - Due Date: 31.12.2009 - View privileges: All the world - Edit privileges: Shared by all users - Copyright © Ortolani Luca All right reserved - Page available also in: it