Project

General

Profile

RoundCubeMail » History » Revision 26

Revision 25 (Simone Piccardi, 07/26/2011 02:56 PM) → Revision 26/32 (Simone Piccardi, 06/14/2013 10:57 AM)

h1. Installare e configurare Round Cube

"Roundcube":http://roundcube.net/ è una delle piattaforme di posta web più interessanti fra quelle disponibili, supportando molte funzionalità avanzate ed una interfaccia utente molto gradevole. Non essendo disponibile come pacchetto Debian, descriveremo qui la procedura utilizzata per installarla su una Debian Squueze (e successive). Lenny.

Il primo passo è scaricare l'ultima versione disponibile dal sito del progetto. Al momento della stesura di queste note l'ultima versione disponibile è la 0.9. 0.5. Nella sezione download del sito sono presentate due alternative, la distribuzione completa che non richiede dipendenze e la _dependent_ che non contiene alcune parti che nel caso di Debian possono essere installate direttamente dai pacchetti, si è pertanto scaricata una versione e la si è poi installata in @/var/www@ @/srv@ con i seguenti passi:

<pre>
tar -xvzf roundcubemail-*-dep.tar.gz
mv roundcubemail-*-dep /var/www/roundcube /srv/roundcube
chown -R root.root /srv/roundcube
</pre>

occorre poi aggiustare i permessi rispetto a quelli presenti nell'archivio e inoltre che le due directory @temp@ e @logs@ siano scrivibili dal server web, scrivibili, pertanto ci si sposti nella directory di installazione e si cambino i proprietari dei file di cambi il loro proprietario con con:

<pre>
cd /var/www/roundcube /srv/roundcube
chown -R root.root .
chown -R
www-data.www-data temp logs
</pre>

Si dovrà poi prevedere di configurare Apache per fornire accesso all'installazione ed eseguire il codice di ausilio per il controllo e la creazione automatica dei file di configurazione. Nel caso specifico si potrà definire un opportuno _virtual host_ oppure aggiungere le seguenti righe a quello di default:

<pre>
<Directory /var/www/roundcube> /srv/roundcube>
AllowOverride All
</Directory>
Alias /roundcube /var/www/roundcube /srv/roundcube
</pre>

(la sezione container serve per consentire l'uso del file @.htaccess@ fornito dal programma, alternativamente si può inserire il contenuto dello stesso al posto della direttiva @AllowOverride All@). Inoltre per ottimizzare le prestazioni conviene attivare i seguenti moduli di Apache:

<pre>
a2enmod expires
a2enmod headers
a2enmod deflate
</pre>

e modificare la configurazione di @.htaccess@ (o della parte eventualmente inclusa nel _virtual host_) per l'uso di @mod_headers@ come indicato nel file stesso a seconda della versione di Apache. Inoltre dato che il programma è scritto in PHP ovviamente sarà necessario disporre del relativo supporto per Apache, che qualora non presente dovrà essere installato con il pacchetto @libapache2-mod-php5@.

Si abbia cura di utilizzare la versione completa e non la _dependent_ in quanto almeno fino a Squeeze il programma si lamenta di non avere la libreria _Net_IDNA2_ e non consente l'installazione. A partire dalla 0.9 è possibile utilizzare senza controindicazioni sia _MySQL_ che _sqlite (con il passaggio a sqlite3) come database di supporto. S



Una volta riavviato Apache si potrà contattare la pagina di installazione all'indirizzo:

<pre>
http://mio.server.address/roundcube/installer
</pre>

e seguire la procedura di installazione per passi ivi descritta.

Fino alla 0.4 era possibile usare sia la versione completa che la _dependent_, aggiungendo in questo caso i pacchetti illustrati in seguito. Con la 0.5 se ci si vuole mantenere su Debian Lenny è necessario scaricare la versione completa dato che non esistono neanche in backports pacchetti sufficientemente aggiornati per avere tutte le funzioni di libreria necessarie.

Il primo passo controlla la presenza delle dipendenze necessarie ed opzionali, segnalando cosa manca, nel nostro caso si sono installati i seguenti pacchetti ausiliari:

<pre>
apt-get install libapache2-mod-php5 php5-mcrypt php-pear php5-gd php5-intl\ php5-mysql \
php-net-smtp php-mail-mime

</pre>

ulteriori pacchetti sono necessari a seconda del database (si abbia cura di supporto che si sceglie, se si intende usare _sqlite_ si installi: riavviare apache dopo l'installazione), inoltre sarà necessario anche installare dal sito di backports i pacchetti:

<pre>
apt-get -t lenny-backports install php5-sqlite sqlite3 php-mdb2 php-mdb2-driver-mysql php-mail-mime
</pre>

se (la versione di Lenny di @php-mail-mime@ non va bene) con questo non sarà disponibile soltanto la funzionalità ausiliaria di @php-fileinfo@ che si intende può ottenere ricompilandosi il pacchetto con le istruzioni che si trovano su "questa pagina web":http://www.roundcubeforum.net/5-release-support/14-release-discussion/5021-file-info-extension-php.html ed installandolo manualmente. Qualora si voglia usare _MySQL_ un database diverso si installi: installi il relativo pacchetto di interfaccia rispetto a @php5-mysql@ e @php-mdb2-driver-mysql@.

Nel caso si abbia squeeze si potrà invece installare direttamente tutto con:


<pre>
apt-get install libapache2-mod-php5 php5-mcrypt php-pear php5-gd php5-mysql mysql-client \
php-net-smtp php-mdb2 php-mdb2-driver-mysql php-mail-mime \
php5-intl

</pre>

Una volta completata l'installazione delle dipendenze, si può passare al passo successivo che richiede l'immissione di una lunga serie di parametri di configurazione. La maggior parte di questi possono essere lasciati al loro valore di default, in sostanza ci sarà da cambiare soltanto quelli relativi alla connessione al database (mettendovi username, password e nome del database) e impostare quelli relativi all'indirizzo del server IMAP e SMTP che si vuole usare (usualmente localhost, supponendo che la webmail giri sul server di posta elettronica).

Si tenga presente che il programma necessita di un database (con _MySQL_, _PostgresSQL_ o _SQLite_). Nel nostro caso si intenda utilizzare _MySQL_ è fatto riferimento a _MySQL_, sul quale andrà creato un database dedicato all'applicazione che deve essere oppurtunamente inizializzato. Per la creazione iniziale si può fare riferimento alle istruzioni generali riportate in [[MySQLInitConf]], nel nostro caso si sono utilizzati i seguenti comandi (collegandosi da root):

<pre>
CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost' IDENTIFIED BY 'pwdsegreta';
</pre>

Una volta creato il database lo si dovrà inizializzare con lo schema fornito nei sorgenti del programma, nel nostro caso questo è stato fatto con il comando:

<pre>
mysql -u roundcube -p roundcubemail < SQL/mysql.initial.sql
</pre>

(questo passaggio pare non essere necessario nelle versioni più recenti del software che una volta generati ed installati i due file di configurazione come nel paragrafo precedente offre un pulsante di creazione dello schema direttamente dall'interfaccia web).

Qualora invece si intenda utilizzare _sqlite_ si dovrà creare il database localmente nella directory di installazione con il comando:

<pre>
sqlite3 -init SQL/sqlite.initial.sql sqlite.db
</pre>

il comando rimane nella shell di _sqlite_ per cui occorrerà uscire con @.exit@, una volta fatto questo si abbia cura di modificare propietario e permessi del file con:

<pre>
chmod 640 sqlite.db
chown www-data.www-data sqlite.db
</pre>

ATTENZIONE: la parte su _sqlite_ non è stata verificata, paiono esserci problemi con il supporto per sqlite3.

Infine il programma richiede che si imposti correttamente il parametro @date.timezone@ di PHP, si modifichi pertanto in @/etc/php5/apache2/php.ini@ la riga e si riavvii apache:

<pre>
date.timezone = Europe/Rome
</pre>

Una volta fatto questo la schermata di installazione dovrebbe riportare OK su tutti inseriti i campi necessari e consentire dati di proseguire nella configurazione presentando un pulsante _NEXT_, cliccato il quale verranno richiesti una serie di parametri di configurazione. Si abbia cura di indicare il database in uso, con i parametri di connessione standard per _MySQL_ accesso al DB ed il pathname assoluto del file (nel caso precedente @/var/www/roundcube/sqlite.db@) per _sqlite_. Si dovranno inoltre specificare gli indirizzi IP del ai server SMTP ed e IMAP (in genere @localhost@) a cui si appoggia il programma. E' inoltre necessario indicare la localizzazione da usare (@it_IT@). Fatto questo si potrà cliccare sul pulsante _CREATE CONFIG_.

Se si sono inseriti correttaente i parametri di configurazione a questo punto si potranno
dovranno scaricare i due file di configurazione (@main.inc.php@ e @db.inc.php@) generati automaticamente dall'interfaccia web ed installarli nella directory @config@ (si può anche fare un taglia ed incolla del testo presentato direttamente in un editor). A @config@, a quel punto si potrà passare al terzo passo che verificherà il funzionamento del tutto compresa la spedizione di una email ed il login al server IMAP, se non si ricevono errori si potrà disabilitare l'accesso alla directory di configurazione (come consigliato dall'interfaccia stessa) con il comando:

<pre>
chmod 700 installer
</pre>

(oppure spostandola in altra posizione rispetto all'installazione). Nelle versioni più recenti del programma esiste anche una specifica chiave di configurazione del file @config/main.inc.php@, @enable_installer@, che deve essere abilitata per poter usare l'interfaccia web di installazione, in particolare occorrerà impostare nel suddetto file:

<pre>
$rcmail_config['enable_installer'] = true;
</pre>

e poi metterlo a @false@ completata l'installazione.

Il programma consente l'uso di numerosi plugin che ne estendono le funzionalità, da installare in altrettante sttodirectory nella directory @plugins/@, il loro uso però deve essere esplicitamente attivato con definendo la chiave di configurazione @plugins@, il cui default è essere una lista vuota. La variabile di configurazione deve essere definita alla lista dei nomi (corrispondente alla sottodirectory in cui li si sono installati) dei plugin, pertanto se si vuole attivare i plugin @managesieve@ e @calendar@, si dovrà definire:

<pre>
$rcmail_config['plugins'] = array('managesieve', 'jqueryui', 'calendar');
</pre>