EGroupware è un sistema di collaborazione online, di livello enterprise, adatto per grosse, medie e piccole aziende. Necessita di PHP e di un DBMS, gira su molti sistemi operativi e supporta, riferendosi a quanto afferma Stylite (la compagnia che sviluppa Egroupware) diversi prodotti:
- Linux, Windows, *NIX
- Nginx, Apache, IIS, PHP
- MySQL, MaxDB, Postgres, MsSQL
Egroupware supporta il multidominio, cioè una installazione fisica, ma con diversi siti, ciascuno con uno specifico DB e configurazione individuali.
Questo articolo spiega come sia possibile installare manualmente EGroupware partendo dai pacchetti tarball/SVN. A installazione completata spiegherò, con un esempio pratico, l’aggiunta di due domini indipendenti in EGroupware.
L’installazione è possibile tramite pacchetti rpm o deb in modo totalmente automatico, ma ci possono essere situazioni particolari in cui è preferibile procedere manualmente. Questa guida si rivolge a quest’ultima casistica.
Introduzione
Questa guida si limita all’esposizione dell’installazione di EGroupware da tarball/SVN.
Farò un accenno sistemistico in merito ai pacchetti richieste e normalmente non installati dalle procedure automatiche della propria distro.
In merito alla gestione e alla personalizzazione di EGroupware farò solo un accenno come test e prova dalla corretta installazione. Per l’uso e la configurazione rimando alla documentazione di EGroupware.
La guida suppone un ambiente CentOS 6.3. Dovrebbe essere completamente valida anche per RedHat 6.3 e altre distro basate su RedHat come la Scientific Linux. Per completezza le istruzioni sono state testate su una installazione CentOS 6.3 con il set software predefinito “web server” e SELinux disattivato.
In fine i requisiti di sistema, richiesti da EGroupware, si possono trovare a questa URL: http://community.egroupware.org/index.php?page_name=wiki&lang=&wikipage=ManualSetupRequirements
Obiettivi
Voglio ottenere un’unica installazione di EGroupware con più domini. Il domini sono
stefano
luca
davide
La webroot dei file è
/srv/www/egroupware
la directory per i backup ed il virtual file system sarà
/srv/bak/egroupware
L’utente ed il gruppo con cui gira Apache sono “apache” (user) e “apache” (gruppo).
Come DBMS uso MySQL ed il database, il relativo utente e password per ciascun dominio EGroupware sono:
dominio EGroupware: stefano
DB nome: stefano
DB user: stefano
DB password: st13_FA!5
dominio EGroupware: luca
DB nome: luca
DB user: luca
DB password: lu31-RL$8
dominio EGroupware: davide
DB nome: davide
DB user: davide
DB password: da62=PZ&3
L’URL dell’installazione sarà http://www.example.com/egroupware.
Infine la procedura che descrivo viene svolta da terminale, come utente root, e da un web browser grafico.
Preparazione server
La personalizzazione consiste nell’installazione di alcune librerie PHP, di un programma di servizio e la personalizzazione di Apache.
Creazione directory base:
# mkdir /srv/bak
# mkdir /srv/bak/egroupware
# mkdir /srv/bak/egroupware/stefano
# mkdir /srv/bak/egroupware/stefano/files
# mkdir /srv/bak/egroupware/stefano/backup
# mkdir /var/lib/egroupware
# mkdir /srv/www
# chown apache:apache -R /srv/bak/egroupware
Creazione di una directory temporanea in srv. Servirà per alcune lavorazioni
# mkdir /srv/tmp
Installazione repository epel e PhpMyAdmin
Visto la grande utilità dei repository epel lo farò tramite il pacchetto offerto da questo repository.
# cd /srv/tmp
# rpm --import https://fedoraproject.org/static/0608B895.txt
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
# rpm -ivh epel-release-6-7.noarch.rpm
# rpm update -y
# yum install -y phpmyadmin php-mysql php-mbstring
Installazione di MySQL
# yum install mysql-server
Installazione librerie PHP necessarie
# yum install -y php-devel php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl libxml2 libxml2-devel php-cli
# pear update-channels
# pear upgrade-all
# pear install Archive_Tar Auth_SASL Console_Getopt Log Net_Sieve Net_Socket PEAR Structures_Graph XML_Feed_Parser XML_Parser XML_RPC XML_RSS XML_Util Net_IMAP
# yum install -y mcrypt php-mcrypt
Installazione di tnef:
# yum install -y tnef
Creazione del file /etc/httpd/conf.d/egroupware.conf
# vi /etc/httpd/conf.d/egroupware.conf
Con il seguente contenuto (il file originale è in egroupware/doc/rpm-build/apache.conf)
# Apache and PHP configuration for EGroupware
#
# Many settings are required to have a # certain value for eGroupWare
# to function reasonably, so only change something if you are sure.
# this makes EGroupware available for all vhosts
Alias /egroupware /srv/www/egroupware
RedirectMatch ^/.well-known/(caldav|carddav)$ /egroupware/groupdav.php/
# iOS 4.3+ calendar requires that to autodetect accounts
RedirectMatch ^(/principals/users/.*)$ /egroupware/groupdav.php$1
Options FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
AddHandler cgi-script .cgi
AddDefaultCharset Off
php_flag file_uploads on
php_flag log_errors on
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off
php_flag short_open_tag on
php_flag track_vars on
php_flag display_errors off
# E_ALL & ~E_NOTICE & ~E_STRICT = 8191 - 8 - 2048 = 6135
php_value error_reporting 6135
php_value max_execution_time 90
php_admin_value mbstring.func_overload 7
php_value memory_limit 128M
php_value session.gc_maxlifetime 14400
php_value include_path .:/usr/share/pear
php_admin_value open_basedir /srv/www/egroupware:/srv/bak/egroupware:/var/lib/egroupware:/tmp:/usr/share/pear:/usr/bin/zip:/srv/www/jpgraph:/usr/bin/tnef:/usr/bin/aspell:/usr/bin/crontab:/usr/share/fonts
php_value upload_max_filesize 64M
php_admin_value upload_tmp_dir /tmp
php_value post_max_size 65M
php_value max_input_vars 3000
Order allow,deny
Deny from all
php_admin_value open_basedir /
php_admin_value open_basedir /srv/www/egroupware:/var/lib/egroupware:/tmp:/usr/share/pear:/usr/bin:/bin
php_admin_value mbstring.func_overload 0
Order allow,deny
Allow from all
Abilito la nuova configurazione
# service httpd restart
Installazione
Fase 1: download
Questa prima fase comporta il download dei file dal repository, l’estrazione dei file ed il loro posizionamento nella webroot.
Qui di seguito espongo lo scaricamento sia da SVN, sia dal repository standard per i tarball. Come ultimo passo espongo il download e l’installazione di JPgraph, un pacchetto per la creazione di grafici con PHP usato da EGroupware per disegnare i Gantt dei progetti.
Il download dei file può essere fatto attraverso due vie:
- Download dei tarball: sono aggiornati alla data di pacchettizzazione.Mi posiziono nella webroot
# cd /srv/www/
Scarico i tarball
# wget http://downloads.sourceforge.net/project/egroupware/eGroupware-1.8/eGroupware-1.8.004.20121024/eGroupware-1.8.004.20121024.tar.bz2 # wget http://downloads.sourceforge.net/project/egroupware/eGroupware-1.8/eGroupware-1.8.004.20121024/eGroupware-egw-pear-1.8.004.20121024.tar.bz2 # wget http://downloads.sourceforge.net/project/egroupware/eGroupware-1.8/eGroupware-1.8.004.20121024/eGroupware-gallery-1.8.004.20121024.tar.bz2 # wget http://downloads.sourceforge.net/project/egroupware/eGroupware-1.8/eGroupware-1.8.004.20121024/eGroupware-phpfreechat-1.8.004.20121024.tar.bz2
Estraggo i file dai tarball
# tar xfj eGroupware-1.8.004.20121024.tar.bz2 # tar xfj eGroupware-egw-pear-1.8.004.20121024.tar.bz2 # tar xfj eGroupware-gallery-1.8.004.20121024.tar.bz2 # tar xfj eGroupware-phpfreechat-1.8.004.20121024.tar.bz2
Elimino i tarball
# rm eGroupware-*
Imposto il corretto proprietario e gruppo
# chown apache:apache -R egroupware
- Download via SVN: i file sono aggiornati all’ultima versione disponibile.
Mi posiziono nella webroot# cd /srv/www/
Scarico i file
# svn checkout http://svn.egroupware.org/egroupware/branches/1.8/aliases/default .
Imposto i corretti proprietari
# chown apache:apche -R egroupware
Scaricamento di JPgraph
Mi posiziono in /srv/www
# cd /srv/www
Scarico il pacchetto
# wget http://jpgraph.net/download/download.php?p=5
Estraggo i file dal pacchetto
# tar xfz download.php\?p\=5
Correggo il nome della directory estratta
# mv jpgraph-3.5.0b1 jpgraph
Imposto il corretto proprietario e gruppo
# chown apache:apache -R jpgraph
Elimino il pacchetto scaricato
# rm download.php\?p\=5
Nota: usando wget per lo scaricamento del tarball non viene automaticamente usato il nome del pacchetto, ma viene dato il nome dell’url passata a wget per il download. Il pacchetto ottenuto è corretto, ma il nome è poco significativo.
Fase 2: configurazione preliminare
A questo punto ho tutti i file/programmi necessari. Anche Apache è correttamente configurato. Manca solo il database. Procedo con la creazione del primo database e poi con l’installazione guidata proposta da EGroupware. Quest’ultima controllerà che tutto l’ambiente sia correttamente configurato, creerà il file base di configurazione (header) e, successivamente, procedo con la configurazione del primo dominio.
Creazione del database
Il database che creo ha i seguenti estremi:
DB nome: stefano
DB user: stefano
DB password: st13_FA!5
La creazione attraverso PhpMyAdmin è autoesplicante, mentre procedendo da linea di comando si possono lanciare i seguenti comandi:
# mysql -u root -p
mysql> CREATE DATABASE stefano;
mysql> GRANT ALL PRIVILEGES ON stefano.* TO “stefano”@”localhost” IDENTIFIED BY “st13_FA!5”;
mysql> FLUSH PRIVILEGES;
mysql> EXIT
Il database e l’utente per il database sono pronti.
Installazione guidata
1. Da un desktop, o dalla console, apro un web browser e punto all’url http://www.example.com/egroupware . Seleziono la lingua e avvio il test di installazione
2. Il risultato riporta una lunga lista di riscontri
3. I vari warning li posso ignorare, ma è da correggere il “System/Locatime”. Edito il file /etc/php.ini
# vi /etc/php.ini
4. Correggo il parametro date.timezone come segue
[…]
date.timezone = “Europe/Rome”
[…]
5. Effettuo un nuovo restart del servizio apache
# service httpd restart
6. Rieseguo il test di EGroupware. Ora tutto è OK. Procedo cliccando su “Continue to the Header Admin”
7. Compilo la nuova form. Qui di seguito lo screeshot compilato coerentemente con l’howto. I campi sono ben commentati dalla Stylite stessa:
Nota 1: a titolo di esempio ho impostato le due password ed i due username con le stesse credenziali. In una installazione reale potrebbe essere opportuno diversificarle.
Nota 2: in questa fase ci possono essere dei problemi di scrittura automatica del file header. Se si verifica questo errore EGroupware automaticamente avverte e restituisce tutto il codice del file proponendo di scriverlo manualmente. Spesso, per ovviare il problema, è sufficiente correggere il proprietario e/o il gruppo della directory di EGroupware e impostare il permesso di scrittura per il proprietario. Il proprietario e il gruppo da assegnare sono quelli con cui si fa girare il webserver (per RedHat e le derivate è apache:apache).
Procedo cliccando su “Scrivi”.
8. Segue una pagina di conferma dell’avvenuta creazione del file di header
9. Clicco su “Continua” e accedo alla pagina di login per creare/gestire gli header ed il setup generale
10. Metto username e password nella parte “Setup/Config Admin Login” e accedo alla pagina di configurazione. EGroupware evidenzia subito che mancano tabelle valide nel database e ne propone la creazione . Clicco sul bottone “Installa”
11. A fine creazione la pagina di configurazione mi comunica l’avvenuta creazione (a parte messaggi diversi). Clicco sul bottone “ricontrolla la mia installazione”
12. A questo punto l’aggiornamento della pagina di setup mi conferma la creazione delle tabelle e mi comunica che manca la configurazione. Clicco sul bottone “Modifica la Configurazione Esistente”
13. La nuova form è ricca di svariati parametri e presuppone una buona conoscenza dei parametri del server e di quello che si vuole ottenere. Le impostazioni del server IMAP ed SMTP si riferiscono al mailing globale del sistema. A titolo di esempio riporto una configurazione possibile. A fine impostazione clicco sul bottone “Salva”
14. La nuova pagina mi informa che devo impostare l’account dell’amministratore del sito. Clicco sul bottone “Crea account amministratore”
15. Imposto l’account dell’amministratore del dominio “stefano” e clicco sul bottone “Salva”
16. A questo punto tutte le impostazioni base sono applicate. È possibile fare una selezione delle applicazioni disponibili all’interno di EGroupware. Cliccando su “Gestione Applicazioni” posso fare questa selezione, ma preferisco avere a disposizione tutte le applicazioni e agire, successivamente, attraverso i gruppi per selezionare le applicazioni a disposizione degli utenti.
A questo punto clicco su “Esci”
17. Ora clicco su “Indietro al Login Utente” per accedere alla pagina di login, lato utente, del nostro dominio
18. Prima di procedere al login come amministratore voglio ottenere che nel menu a tendina dei domini disponibili compaia “stefano” al posto di “default”.
Pertanto edito il file header.inc.php
# vi /srv/www/egroupware/header.inc.php
e modifico la riga “$GLOBALS[‘egw_domain’][‘default’] = array(” come segue
[…]
$GLOBALS[‘egw_domain’][‘stefano’] = array(
[…]
19. Ora, tramite il browser, accedo all’url http://www.example.com/egroupware . Autenticandomi con l’utente administrator (quello inserito al punto 16) posso iniziare la creazione dei gruppi, l’inserimento degli utenti, la configurazione delle applicazioni.
Conclusioni
In questo primo articolo ho descritto tutte le fasi necessarie all’installazione di Egroupware, nei prossimi approfondirò l’aspetto di configurazione ed i test case di funzionamento.
Lascia un commento