Passaggio da SquirrelMail a RoundCube sul tuo server ISPConfig3
Questo tutorial è stato creato per coloro che hanno installato The Perfect Server - CentOS 5.4 x86_64 [ISPConfig 3] e non amano SquirrelMail come client webmail. Ecco una guida per sostituire SquirrelMail con RoundCube, che è visivamente più attraente e più facile da gestire per i nostri clienti.
Importante! Non ho provato, ma... come installare SquirrelMail non è cambiato nei recenti CentOS 5.x Perfect Server Howtos. Penso che questo tutorial sia valido anche per le versioni precedenti di CentOS e anche per altre distribuzioni Linux, non cambia praticamente nulla nel sistema.
Passaggio 1.
Scarica RoundCube, decomprimi, rimuovi i file non necessari e prepara la cartella di installazione. Sostituisci roundcubemail-0.3.1 con l'ultimo disponibile.
cd /usr/share
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz?use_mirror=ignum
tar -vxf roundcubemail-0.3.1.tar.gz
rm -fr roundcubemail-0.3.1.tar.gz
cd roundcubemail-0.3.1
rm -fr installer
chmod 755 temp logs
cd config
cp db.inc.php.dist db.inc.php
cp main.inc.php.dist main.inc.php
Passaggio 2.
Ora creiamo il nostro database per RoundCube. Ho creato il mio con ISPConfig perché voglio che venga mostrato nel mio elenco di database ISPConfig. Questo è il mio esempio di database:
Nome database:roundcubedb
Utente database:roundcubeuser
Pass database:12345
Cambiali per una maggiore sicurezza
Passaggio 3.
È necessario installare RoundCube manualmente, perché se si utilizza il programma di installazione di RoundCube, verrà segnalato un errore di versione php e non si proseguirà con l'installazione. Modifica il file db.inc.php, cerchiamo la seguente riga e la modifichiamo con i nostri dati (il database che abbiamo creato in ISPConfig).
vi db.inc.php
Cambia la linea:
[...] $rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcubemail'; [...]
a:
[...] $rcmail_config['db_dsnw'] = 'mysql://roundcubeuser:[email protected]/roundcubedb'; [...]
Modificare anche queste impostazioni nel file main.inc.php:
vi main.inc.php
Cambia le linee:
[...] $rcmail_config['message_cache_lifetime'] = '10d'; [...]
$rcmail_config['default_host'] = ''; [...]
$rcmail_config['smtp_server'] = ''; [...]
$rcmail_config['session_lifetime'] = 10; [...]
$rcmail_config['create_default_folders'] = FALSE; [...]
a:
[...] $rcmail_config['message_cache_lifetime'] = '30m';
[...] $rcmail_config['default_host'] = 'localhost';
[...] $rcmail_config['smtp_server'] = '%h';
[...] $rcmail_config['session_lifetime'] = 30;
[...] $rcmail_config['create_default_folders'] = TRUE; [...]
Passaggio 4.
Ora dobbiamo creare manualmente le tabelle nel nostro database RoundCube. Cerca il file mysql.initial.sql nella cartella roundcubemail-0.3.1/SQL/ e copiane il contenuto:
-- RoundCube Webmail initial database structure /*!40014 SET FOREIGN_KEY_CHECKS=0 */; -- Table structure for table `session` CREATE TABLE `session` ( `sess_id` varchar(40) NOT NULL, `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `ip` varchar(40) NOT NULL, `vars` mediumtext NOT NULL, PRIMARY KEY(`sess_id`), INDEX `changed_index` (`changed`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `users` CREATE TABLE `users` ( `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `username` varchar(128) NOT NULL, `mail_host` varchar(128) NOT NULL, `alias` varchar(128) NOT NULL, `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `last_login` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `language` varchar(5), `preferences` text, PRIMARY KEY(`user_id`), INDEX `username_index` (`username`), INDEX `alias_index` (`alias`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `messages` CREATE TABLE `messages` ( `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', `del` tinyint(1) NOT NULL DEFAULT '0', `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL, `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `idx` int(11) UNSIGNED NOT NULL DEFAULT '0', `uid` int(11) UNSIGNED NOT NULL DEFAULT '0', `subject` varchar(255) NOT NULL, `from` varchar(255) NOT NULL, `to` varchar(255) NOT NULL, `cc` varchar(255) NOT NULL, `date` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `size` int(11) UNSIGNED NOT NULL DEFAULT '0', `headers` text NOT NULL, `structure` text, PRIMARY KEY(`message_id`), INDEX `created_index` (`created`), INDEX `index_index` (`user_id`, `cache_key`, `idx`), UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`), CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) /*!40008 ON DELETE CASCADE ON UPDATE CASCADE */ ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `cache` CREATE TABLE `cache` ( `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL , `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `data` longtext NOT NULL, `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY(`cache_id`), INDEX `created_index` (`created`), INDEX `user_cache_index` (`user_id`,`cache_key`), CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) /*!40008 ON DELETE CASCADE ON UPDATE CASCADE */ ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `contacts` CREATE TABLE `contacts` ( `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `del` tinyint(1) NOT NULL DEFAULT '0', `name` varchar(128) NOT NULL, `email` varchar(128) NOT NULL, `firstname` varchar(128) NOT NULL, `surname` varchar(128) NOT NULL, `vcard` text NULL, `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY(`contact_id`), INDEX `user_contacts_index` (`user_id`,`email`), CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) /*!40008 ON DELETE CASCADE ON UPDATE CASCADE */ ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `identities` CREATE TABLE `identities` ( `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `del` tinyint(1) NOT NULL DEFAULT '0', `standard` tinyint(1) NOT NULL DEFAULT '0', `name` varchar(128) NOT NULL, `organization` varchar(128) NOT NULL DEFAULT '', `email` varchar(128) NOT NULL, `reply-to` varchar(128) NOT NULL DEFAULT '', `bcc` varchar(128) NOT NULL DEFAULT '', `signature` text, `html_signature` tinyint(1) NOT NULL DEFAULT '0', `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY(`identity_id`), CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) /*!40008 ON DELETE CASCADE ON UPDATE CASCADE */ ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; /*!40014 SET FOREIGN_KEY_CHECKS=1 */;
Ora vai su http://www.yourdomain.tld:8080/phpmyadmin, inserisci il tuo nome utente e password MySQL. Seleziona il nostro database RoundCube "roundcubedb" e vai alla scheda SQL, nella casella di testo, incolla il testo che hai copiato mysql.initial.sql ed esegui la query. Abbiamo installato con successo RoundCube Webmail.
Passaggio 5.
Vogliamo RoundCube come la nostra webmail predefinita. SquirrelMail non verrà utilizzato, né vogliamo che i nostri clienti subiscano alcuna alterazione. Procediamo così:in questo passaggio ognuno può adattarsi alle proprie esigenze. SquirrelMail può essere mantenuto, creando un nuovo alias per RoundCube.
cd /usr/share
mv squirrelmail squirrelmail.bak
mv roundcubemail-0.3.1 squirrelmail
Passaggio 6.
Infine vai su http://www.yourdomain.tld:8080/webmail e accedi per goderti questo simpatico Webmail.
Informazioni:
- Maggiori informazioni su RoundCube:http://www.roundcube.net
- Falko's Howto The Perfect Server - CentOS 5.4 x86_64 [ISPConfig 3]
Un ringraziamento speciale a:
- Falco. Your Perfect Server Howtos mi ha aiutato molto nella mia iniziazione con i server Linux.
- La mia ragazza Naty. Ha fatto la traduzione del testo.
- Il team di HowtoForge per il tuo eccellente lavoro.