Project

General

Profile

RoundCubeMail » History » Version 30

Simone Piccardi, 05/28/2015 04:05 PM

1 20 Simone Piccardi
h1. Installare e configurare Round Cube
2 19 Amministratore Truelite
3 27 Simone Piccardi
"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 su Squeeze, ed in una versione piuttosto vecchia su Wheezy, descriveremo qui la procedura utilizzata per installarla su una Debian Squeeze (e successive). 
4 19 Amministratore Truelite
5 27 Simone Piccardi
Il primo passo è scaricare l'ultima versione disponibile dal sito del progetto. Al momento della stesura di queste note l'ultima versione disponibile è la 1.0.1. 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@ con i seguenti passi: 
6 20 Simone Piccardi
7 1 Amministratore Truelite
<pre>
8 1 Amministratore Truelite
tar -xvzf roundcubemail-*-dep.tar.gz
9 26 Simone Piccardi
mv roundcubemail-*-dep /var/www/roundcube
10 1 Amministratore Truelite
</pre>
11 1 Amministratore Truelite
12 26 Simone Piccardi
occorre poi aggiustare i permessi rispetto a quelli presenti nell'archivio e che le due directory @temp@ e @logs@ siano scrivibili dal server web, pertanto ci si sposti nella directory di installazione e si cambino i proprietari dei file con:
13 20 Simone Piccardi
14 20 Simone Piccardi
<pre>
15 26 Simone Piccardi
cd /var/www/roundcube
16 26 Simone Piccardi
chown -R root.root .
17 1 Amministratore Truelite
chown -R www-data.www-data temp logs
18 1 Amministratore Truelite
</pre>
19 19 Amministratore Truelite
20 26 Simone Piccardi
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:
21 20 Simone Piccardi
22 1 Amministratore Truelite
<pre>
23 26 Simone Piccardi
<Directory /var/www/roundcube>
24 20 Simone Piccardi
        AllowOverride All
25 19 Amministratore Truelite
</Directory>
26 26 Simone Piccardi
Alias /roundcube /var/www/roundcube
27 1 Amministratore Truelite
</pre>
28 20 Simone Piccardi
29 1 Amministratore Truelite
(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: 
30 1 Amministratore Truelite
31 20 Simone Piccardi
<pre>
32 20 Simone Piccardi
a2enmod expires
33 19 Amministratore Truelite
a2enmod headers
34 19 Amministratore Truelite
a2enmod deflate
35 19 Amministratore Truelite
</pre>
36 1 Amministratore Truelite
37 26 Simone Piccardi
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@.
38 20 Simone Piccardi
39 26 Simone Piccardi
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
40 26 Simone Piccardi
41 1 Amministratore Truelite
Una volta riavviato Apache si potrà contattare la pagina di installazione all'indirizzo:
42 1 Amministratore Truelite
43 1 Amministratore Truelite
<pre>
44 20 Simone Piccardi
http://mio.server.address/roundcube/installer
45 1 Amministratore Truelite
</pre>
46 22 Simone Piccardi
47 19 Amministratore Truelite
e seguire la procedura di installazione per passi ivi descritta. 
48 1 Amministratore Truelite
49 13 Amministratore Truelite
Il primo passo controlla la presenza delle dipendenze necessarie ed opzionali, segnalando cosa manca, nel nostro caso si sono installati i seguenti pacchetti ausiliari:
50 19 Amministratore Truelite
51 1 Amministratore Truelite
<pre>
52 29 Simone Piccardi
apt-get install php5-mcrypt php-pear php5-gd php5-intl php5-ldap\
53 26 Simone Piccardi
                php-net-smtp php-mail-mime
54 19 Amministratore Truelite
</pre>
55 19 Amministratore Truelite
56 26 Simone Piccardi
ulteriori pacchetti sono necessari a seconda del database di supporto che si sceglie, se si intende usare _sqlite_ si installi:
57 20 Simone Piccardi
58 21 Simone Piccardi
<pre>
59 26 Simone Piccardi
apt-get install php5-sqlite sqlite3
60 23 Simone Piccardi
</pre>
61 23 Simone Piccardi
62 26 Simone Piccardi
se si intende usare _MySQL_ si installi:
63 1 Amministratore Truelite
64 1 Amministratore Truelite
<pre>
65 26 Simone Piccardi
apt-get install php5-mysql mysql-client
66 1 Amministratore Truelite
</pre>
67 1 Amministratore Truelite
68 1 Amministratore Truelite
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).
69 1 Amministratore Truelite
70 26 Simone Piccardi
Si tenga presente che il programma necessita di un database (con _MySQL_, _PostgresSQL_ o _SQLite_). Nel caso si intenda utilizzare _MySQL_ 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):
71 1 Amministratore Truelite
72 1 Amministratore Truelite
<pre>
73 1 Amministratore Truelite
CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
74 1 Amministratore Truelite
GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost' IDENTIFIED BY 'pwdsegreta'; 
75 1 Amministratore Truelite
</pre>
76 1 Amministratore Truelite
77 1 Amministratore Truelite
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:
78 1 Amministratore Truelite
79 1 Amministratore Truelite
<pre>
80 1 Amministratore Truelite
mysql -u roundcube -p roundcubemail < SQL/mysql.initial.sql
81 1 Amministratore Truelite
</pre>
82 1 Amministratore Truelite
83 1 Amministratore Truelite
(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).
84 1 Amministratore Truelite
85 26 Simone Piccardi
Qualora invece si intenda utilizzare _sqlite_ si dovrà creare il database localmente nella directory di installazione con il comando:
86 26 Simone Piccardi
87 26 Simone Piccardi
<pre>
88 26 Simone Piccardi
sqlite3 -init SQL/sqlite.initial.sql sqlite.db
89 26 Simone Piccardi
</pre>
90 26 Simone Piccardi
91 26 Simone Piccardi
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: 
92 26 Simone Piccardi
93 26 Simone Piccardi
<pre>
94 26 Simone Piccardi
chmod 640 sqlite.db
95 26 Simone Piccardi
chown www-data.www-data sqlite.db
96 26 Simone Piccardi
</pre>
97 26 Simone Piccardi
98 26 Simone Piccardi
ATTENZIONE: la parte su _sqlite_ non è stata verificata, paiono esserci problemi con il supporto per sqlite3.
99 26 Simone Piccardi
100 26 Simone Piccardi
101 26 Simone Piccardi
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:
102 26 Simone Piccardi
103 26 Simone Piccardi
<pre>
104 26 Simone Piccardi
date.timezone = Europe/Rome
105 26 Simone Piccardi
</pre>
106 26 Simone Piccardi
107 26 Simone Piccardi
Una volta fatto questo la schermata di installazione dovrebbe riportare OK su tutti i campi necessari e consentire 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_ ed il pathname assoluto del file (nel caso precedente @/var/www/roundcube/sqlite.db@) per _sqlite_. Si dovranno inoltre specificare gli indirizzi IP del server SMTP ed 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_. 
108 26 Simone Piccardi
109 28 Simone Piccardi
Se si sono inseriti correttaente i parametri di configurazione a questo punto verrà generata una configurazione, ed illustrati passi da fare. In genere questo comporta prendere il testo generato e inserirlo negli opportuni file nella directory @config@ (si può anche fare un taglia ed incolla del testo presentato direttamente in un editor). Detti file varianoa seconda della versione, con la 1.0.1 si tratta soltanto di @config.inc.php@, in precedenza erano @main.inc.php@ e @db.inc.php@. 
110 1 Amministratore Truelite
111 28 Simone Piccardi
Una volta inserita la configurazione sotto @config@ 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: 
112 28 Simone Piccardi
113 19 Amministratore Truelite
<pre>
114 9 Amministratore Truelite
chmod 700 installer
115 1 Amministratore Truelite
</pre>
116 24 Simone Piccardi
117 28 Simone Piccardi
(oppure spostandola in altra posizione rispetto all'installazione), anche se non essendo in grado di scrivere da nessuna parte non ha effetti significativi.. 
118 24 Simone Piccardi
119 30 Simone Piccardi
h2. Configurazione Plugin
120 1 Amministratore Truelite
121 30 Simone Piccardi
Il programma consente l'uso di numerosi plugin che ne estendono le funzionalità, da installare in altrettante sottodirectory 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 vogliono attivare i plugin @managesieve@ e @calendar@, si dovrà definire:
122 30 Simone Piccardi
123 24 Simone Piccardi
<pre>
124 28 Simone Piccardi
$config['plugins'] = array('managesieve', 'jqueryui', 'calendar');
125 1 Amministratore Truelite
</pre>
126 30 Simone Piccardi
127 30 Simone Piccardi
Di particolare interesse è il plugin @password@ che consente di far effettuare il cambio password agli utenti con una pluralità di metodi, fra cui il più utile è quello via query SQL che consente una integrazione con Postfixadmin. In tal caso si dovrà configurare il plugin per poter scrivere sulla tabella di Postfixadmin su cui sono gestiti gli utenti. La cosa si può fare partendo dal file di configurazione @plugins/password/config.inc.php.dist@, da copiare come @plugins/password/config.inc.php@ e modificare indicando le due configurazioni:
128 30 Simone Piccardi
129 30 Simone Piccardi
<pre>
130 30 Simone Piccardi
$config['password_db_dsn'] = 'mysql://postfixadmin:passwordlungaedifficile@localhost/postfixadmin';
131 30 Simone Piccardi
$config['password_query'] = 'UPDATE mailbox SET password=%c WHERE username=%u LIMIT 1';
132 30 Simone Piccardi
</pre>
133 30 Simone Piccardi
134 30 Simone Piccardi
dove si è usata la query che è valida quando si è configurato Postfixadmin per salvare le password in formato _md5crypt_, vale a dire se in @/etc/postfixadmin/config.inc.php@ si è usato @$CONF['encrypt'] = 'md5crypt';@