1 dicembre 2019 Roberto Puzzanghera4 commenti
Roundcube è una webmail avanzata con una bella interfaccia grafica.
Leggere qui https://github.com/roundcube/roundcubemail/wiki/Changelog#RELEASE1.4.1 per maggiori informazioni.
NB: è necessario abilitare il supporto mysql a pdo compilando il php con l'opzione --with-pdo-mysql
Il processo di aggiornamento è veramente semplice, notevolmente migliorato rispetto al passato. E' sufficiente decomprimere il pacchetto in una cartella temporanea, rinominare il vecchio Roundcube da sovrascrivere e lanciare lo script per l'aggiornamento dalla linea di comando come segue. Nella mia installazione la posizione della cartella di Roundcube è /usr/local/www/htdocs/roundcube
tar xzf roundcubemail-1.4.1-complete.tar.gz # spostiamo la cartella di RC appena creata in una directory temporanea, da cui lanceremo lo script per l'aggiornamento mv roundcubemail-1.4.1 rc-temp # rimuoviamo il link simbolico rm roundcube # spostiamo la vecchia installazione. Questa cartella verrà sovrascritta durante il processo di upgrade mv roundcubemail-1.3.1 roundcubemail-1.4.1 # ripristiniamo il link simbolico ln -s roundcubemail-1.4.1 roundcube # pronti per il lancio.. rc-temp/bin/installto.sh /path/to/roundcube/
Seguire le istruzioni. Questo processo richiede che i comandi php e rsync siano nel PATH.
Ora è possibile cancellare la cartella temporanea usata in precedenza:
cd .. rm -r rc-temp roundcubemail-1.3.1
La versione 1.4 aggiunge alcune nuove impostazioni per quanto riguarda SMTP, quindi è necessario dare uno sguardo alla configurazione più sotto.
L'installazione dei vari plugin è ora centralizzata nella repository https://plugins.roundcube.net/ e il processo di aggiornamento è gestito da composer
, che deve aggiornato per primo quando si migra da una versione precedente. Infatti ho ricevuto questo messaggio di avviso quando ho lanciato l'aggiornamento dei plugin:
# sudo -u apache php composer.phar update -no-dev Warning: This development build of composer is over 30 days old. It is recommended to update it by running "composer.phar self-update" to get the latest version
Sfortunatamente la versione di composer
che era installata non era compatibile con php-7.2
, quindi ho dovuto scaricarlo e aggiornarlo manualmente andando a sostituire il file
composer.phar
file. E dal momento che composer
deve essere lanciato da apache
, è necessario fare in modo che apache
possa sovrascrivere questo file per i futuri auto-aggiornamenti (nel mio caso era un file con privilegi root:apache
):
chmod g+w composer.phar
Nel corso dei miei tentativi di aggiornamento dalla linea di comando, mi è risultato chiaro che la cartella /srv
dovesse avere i privilegi di scrittura da parte dell'utente apache
, dal momento che esso cerca di creare una sotto cartella "httpd", pertanto:
chown -R apache /srv/
Per evitare altri errori ricordarsi di assegnare privilegi di scrittura ad apache
nelle cartelle "plugins" e "vendor" e anche ai file composer.lock
e composer.phar
:
chown -R vendor plugins composer.lock composer.phar crypt_gpg caused me problems because of broken links that I solved in this way: cd vendor/bin rm crypt-gpg-pinentry ln -s ../pear/crypt_gpg/scripts/crypt-gpg-pinentry crypt-gpg-pinentry
Un'altra richiesta rispetto al passato è che php
necessita del supporto ldap
al fine di gestire gli aggiornamenti via composer
, compilandolo in questo modo:
--with-ldap
* An IMAP, HTTP and SMTP server
* .htaccess support allowing overrides for DirectoryIndex
* PHP Version 5.4 or greater including:
- PCRE, DOM, JSON, Session, Sockets, OpenSSL, Mbstring (required)
- PHP PDO with driver for either MySQL, PostgreSQL, SQL Server, Oracle or SQLite (required)
- Iconv, Zip, Fileinfo, Intl, Exif (recommended)
- LDAP for LDAP addressbook support (optional)
- GD, Imagick (optional thumbnails generation, QR-code)
* PEAR and PEAR packages distributed with Roundcube or external:
- Mail_Mime 1.10.0 or newer
- Net_SMTP 1.8.1 or newer
- Net_Socket 1.0.12 or newer
- Net_IDNA2 0.1.1 or newer
- Auth_SASL 1.0.6 or newer
- Net_Sieve 1.4.3 or newer (for managesieve plugin)
- Crypt_GPG 1.6.3 or newer (for enigma plugin)
- Endroid/QrCode 1.6.0 or newer (https://github.com/endroid/QrCode)
- Kolab/Net_LDAP3 1.0.6 or newer (for LDAP addressbook)
- Masterminds/HTML5 2.5.x (optional HTML parser)
* php.ini options:
- error_reporting E_ALL & ~E_NOTICE & ~E_STRICT
- memory_limit > 16MB
- file_uploads enabled (for uploading attachments and import files)
- session.auto_start disabled
- suhosin.session.encrypt disabled
- mbstring.func_overload disabled
- pcre.backtrack_limit >= 100000
* A MySQL, PostgreSQL, MS SQL Server (2005 or newer), Oracle database
or SQLite support in PHP - with permission to create tables
* Composer installed either locally or globally (https://getcomposer.org)
I will show how install it in a Linux/Apache/MySQL/PHP + qmail environment.
Mostrerò come installare roundcube in un ambiente Linux/Apache/MySQL/PHP
+ qmail
.
Questa è una configurazione di php minimale che soddisfa tutti i prerequisiti di Rouncube di cui sopra nel mio virtual server Slackware:
./configure \ --with-mysqli=/usr/bin/mysql_config \ --with-pdo-mysql=/usr \ --disable-mysqlnd \ --with-mcrypt \ --enable-mbstring \ --with-zlib \ --with-bz2 \ --enable-sockets \ --with-openssl \ --enable-intl \ --with-ldap
Rispetto alla versione 0.4.2, una estensione addizionale raccomandata è intl, che è già inclusa e abilitata in PHP-5.3, e che sulla mia Slackware richiede le ICU headers and libraries. Infatti, durante la configurazione, è possibile avere questo errore:
checking for icu-config... no checking for location of ICU headers and libraries... not found configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ICU dovrebbe essere disponibile come pacchetto compilato per la vostra distribuzione (su Slackware è presente nella 14.2). In caso contrario configurare, compilare e installare come al solito:
cd /usr/local/src wget http://download.icu-project.org/files/icu4c/4.8.1/icu4c-4_8_1-src.tgz tar xzvf icu4c-4_8_1-src.tgz cd icu chown -R root.root . cd source ./configure make make install
Installare ICU, quindi configurare php con --enable-intl
Scaricare la tarball da http://roundcube.net/download nella vostra cartella htdocs, scompattare e settare i privilegi per la cartella come segue:
cd /usr/local/www/htdocs tar xzf roundcubemail-x.x.x.tar.gz ln -s roundcubemail-x.x.x roundcube cd roundcube chown -R root.apache . chmod -R o-rx . chmod g+w logs temp
Creare l'utente mysql e il database; assegnare a tale utente privilegi limitati:
# /usr/local/mysql/bin/mysql -u root -p CREATE USER 'roundcube'@'[yout-IP]' IDENTIFIED BY '***'; GRANT USAGE ON * . * TO 'roundcube'@'[your-IP]' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE DATABASE IF NOT EXISTS `roundcube` ; GRANT ALL PRIVILEGES ON `roundcube` . * TO 'roundcube'@'[your-IP]';
[your-IP] rappresenta qui l'IP del server httpd. Se esso coincide con il server MySQL si può usare 'localhost' naturalmente.
Ora puntare il browser su http://url-to-roundcube/installer/ e seguire le istruzioni. Io ho lasciato le impostazioni predefinite ad eccezione dell'interfaccia per mysql di php (selezionare mysqli se disponibile nel vostro httpd server). Non dimenticare di copiare i parametri del database e di impostare l'indirizzo IP del server IMAP. Impostare username_domain al vostro dominio di defalut per evitare di loggarsi digitando anche la parte dopo la @ del vostro indirizzo email.
Copiare il file default.inc.php
in config.inc.php
nella cartella config
. Impostare poi i privilegi per mettere in sicurezza Roundcube:
cd config chown root.apache * chmod o-r *
Se tutti i test sono andati bene rimuovere la cartella installer come raccomandato e disabilitare l'installazione nel file di configurazione:
$config['enable_installer'] = false;
Suggerisco di abilitare queste opzioni; la prima abilita la creazione delle cartelle di default (Posta inviata, Cestino, Spam etc.) la prima volta che vi loggate:
// Log successful/failed logins to /userlogins or to syslog (important to activate fail2ban later) $config['log_logins'] = true; // Automatically add this domain to user names for login $config['username_domain'] = 'yourdomain.net'; // default setting if preview pane is enabled $config['preview_pane'] = true; // declaring the auth type speeds up the imap connection with 0.5 version!! $config['imap_auth_type'] = NULL; // ---------------------------------- // SMTP // ---------------------------------- // SMTP server host (for sending mails). // Enter hostname with prefix tls:// to use STARTTLS, or use // prefix ssl:// to use the deprecated SSL over SMTP (aka SMTPS) // Supported replacement variables: // %h - user's IMAP hostname // %n - hostname ($_SERVER['SERVER_NAME']) // %t - hostname without the first part // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) // %z - IMAP domain (IMAP hostname without the first part) // For example %n = mail.domain.tld, %t = domain.tld $config['smtp_server'] = 'tls://smtp.sagredo.eu';// SMTP port (default is 25; use 587 for STARTTLS or 465 for the // deprecated SSL over SMTP (aka SMTPS)) $config['smtp_port'] = 587; $config['smtp_auth_type'] = 'LOGIN';// SMTP username (if required) if you use %u as the username Roundcube // will use the current username for login $config['smtp_user'] = '%u'; // SMTP password (if required) if you use %p as the password Roundcube // will use the current user's password for login $config['smtp_pass'] = '%p'; // enforce connections over https // with this option enabled, all non-secure connections will be redirected. // set the port for the ssl connection as value of this option if it differs from the default 443 $config['force_https'] = true; // this key is used to encrypt the users imap password which is stored // in the session record (and the client cookie if remember password is enabled). // please provide a string of exactly 24 chars. $config['des_key'] = '123456789123456789123456'; // Absolute path to a local mime.types mapping table file. // This is used to derive mime-types from the filename extension or vice versa. // Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, // download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types $config['mime_types'] = '/absolute/path/to/apache/conf/mime.types'; // path to imagemagick identify binary $config['im_identify_path'] = '/usr/local/bin/identify'; // path to imagemagick convert binary $config['im_convert_path'] = '/usr/local/bin/convert'; // use this format for date display (date or strftime format) $config['date_format'] = 'd-m-Y'; // automatically create the above listed default folders on first login $config['create_default_folders'] = true; // If true all folders will be checked for recent messages $config['check_all_folders'] = true; // the new 'elastic' theme is the default in 1.4.1 version $config['skin'] = 'elastic'
La maggior parte dei plugin di Roundcube sono disponibili su https://plugins.roundcube.net/ e la maniera migliore di installarli e aggiornarli è usare composer
. Dal momento che composer
deve essere lanciato da apache
, è necessario impostare opportunamente i privilegi in alcune cartelle e file ove l'utente apache
deve poter scrivere.
cd /path/to/roundcube chown -R root:apache . mkdir -p /srv/httpd chown -R apache:apache /srv/httpd touch composer.lock chown apache:apache composer.lock composer.phar chmod -R g+w plugins vendor
Vedremo come installare e aggiornare i plugin nella prossima pagina.
markasjunk skin not working
9 dicembre 2019 08:08
usage 2048 keys
8 dicembre 2019 14:06
chkuser
8 dicembre 2019 09:46
chkuser
7 dicembre 2019 23:10
usage 2048 keys
7 dicembre 2019 07:54
usage 2048 keys
7 dicembre 2019 05:33
usage 2048 keys
7 dicembre 2019 05:28
markasjunk skin not working
6 dicembre 2019 13:53
markasjunk skin not working
6 dicembre 2019 06:39
chkuser
4 dicembre 2019 01:34
Tags
apache clamav dkim dovecot ezmlm fail2ban ftp guide hacks lamp letsencrypt linux linux-vserver lxc mariadb mediawiki mozilla mysql owncloud patches php proftpd qmail qmailadmin rbl roundcube rsync sieve simscan slackware spamassassin ssh ssl tcprules tex ucspi-tcp vpopmail vqadmin
Commenti
Utilissimo!!!
Luca 8 febbraio 2011 02:47
Grazie mille, non sapevo come procedere all'installazione di intl (su PHP 5.2) e mi hai risolto il problema!!! Mitico!
Rispondi | Permalink
Aiuto please
Angelo Luca 30 marzo 2011 11:50
Salve,
vorrei sapere come fare per accedere alla webmail senza passare dalla pagina di login, vorrei passare username e password tramite GET nella url
Grazie
Rispondi | Permalink
Re: aiuto please
roberto puzzanghera Angelo 30 marzo 2011 13:35
Non credo proprio che sia possibile. Roundcube è programmato per leggere quei valori dalla variabile $_POST di php.
Però potresti replicare l'html del form in una pagina web qualunque, sempre che sia questo ciò che ti serve fare:
Rispondi | Permalink
Per accedere e loggarsi
Giuseppe Blandino roberto puzzanghera 11 ottobre 2012 19:22
Per accedere e loggarsi a roudcube dall'esterno, ti consiglio di utilizzare questa classe:
http://blog.philippheckel.com/2008/05/16/roundcube-login-via-php-script/
Rispondi | Permalink