this is obsolete doc -- see http://doc.nethence.com/ instead

RoundCube installation 

 

 

Introduction 

Since RoundCube 0.2.0-stable, PHP 5.2.0+ is required. It almost works fine with PHP 5.1 (RHEL5). We're only experiencing troubles with the 'Display message in HTML' feature. 

 

 

Installation 

Make sure you've got those packages installed, 

rpm -q \
httpd \
mysql-server \
php \
php-mysql \
php-pecl-Fileinfo \
php-mcrypt \
php-xml

 

Download (http://roundcube.net/downloads or http://nightly.roundcube.net/trunk/), extract and deploy, 

wget http://nightly.roundcube.net/trunk/roundcubemail-trunk-r2907-20090901.tgz
tar xvzf roundcubemail-trunk-r2907-20090901.tgz
mv roundcubemail-trunk-r2907-20090901 /var/www/webmail.example.net
cd /var/www/webmail.example.net
touch favicon.ico
chown -R nobody:nobody .
chown -R apache:apache temp
rm -rf logs

Note. "robots.txt" is provided by RoundCube 

Note. we're using syslog 

 

Configure the virtual host, 

vi /etc/httpd/conf.d/vhost.conf

add this, 

<VirtualHost *:80>
        ServerName webmail.example.net
        DocumentRoot /home/www/webmail.example.net
        CustomLog /var/log/httpd/webmail.example.net_access.log combined
        ErrorLog /var/log/httpd/webmail.example.net_error.log
        <Directory "/home/www/webmail.example.net">
                AllowOverride All
        </Directory>
</VirtualHost>

apply, 

service httpd reload

 

Create a MySQL database and user (e.g. with phpMyAdmin http://www.phpmyadmin.net/). 

 

Point your browser to the installer and proceed, 

http: //webmail.example.net/installer/

note. on RHEL5 servers you will have to hack this one, 

cd installer
cp check.php check.php.dist
vi check.php

change, 

define('MIN_PHP_VERSION', '5.1.6');

note. you will have to configure PHP to load fileinfo, mcrypt and gd, 

vi /etc/php.ini

note. you may setup a timezone, 

vi .htaccess

add, 

php_value       date.timezone           Europe/Paris

 

During installation, 

General configuration > check "Check client IP in session authorization"
General configuration > identites_level : many identities with possibly to edit all params but not email address
Logging & Debugging > debug_level : also check "Print errors (to the browser)"
Logging & Debugging > log_driver : syslog
Database setup > ...
Language : fr_FR
IMAP server : ...  

save the configurations (copy/paste), 

cd config
vi main.inc.php.paste
vi db.inc.php.paste
sed '/\/\*/,/*\//d; /^\/\//d; /^$/d;' main.inc.php.paste > main.inc.php
vi main.php.inc

eventually change those lines, 

$rcmail_config['default_host'] = 'localhost';
$rcmail_config['language'] = 'fr_FR';
$rcmail_config['create_default_folders'] = true;
$rcmail_config['protect_default_folders'] = false;
$rcmail_config['default_charset'] = 'ISO-8859-1';
$rcmail_config['list_cols'] = array('from', 'subject', 'date', 'attachment');
$rcmail_config['preview_pane'] = true;
$rcmail_config['preview_pane_vertical'] = true;

continue, 

Initialize database

remove the installer and reapply the perms just in case, 

rm -rf installer
chown -R nobody:nobody .
chown -R apache:apache temp

 

 

Migration 

When you migrate the mails from one host to another, RoundCube will try to insert them in the cache again, hence the "MDB2 Error: constraint violation Query" error. Connect to the roundcube database and flush the cache, 

mysql -uroot -p
show databases;
use DBNAME
truncate messages;
truncate cache;

Note. $rcmail_config['enable_caching'] = TRUE;  

 

 

Upgrade 

Backup the db, 

cd ~/
mysqldump -uroot -p DBNAME > DBNAME.sql

backup the roundcube web folder, 

cd /var/www/vhosts
tar czf mail.example.net.tar.gz mail.example.net

backup the config files, 

cd mail.example.net
cp config/db.inc.php ~/
cp config/main.inc.php ~/

 

Download (http://www.roundcube.net/?p=downloads) and extract the new RoundCube version, 

cd path/to
wget ...
tar xzf roundcubemail-0.3-stable.tar.gz

 

Replace the old folder with the new version, 

cd /var/www/vhosts
mv mail.example.net mail.example.net.old
mv path/to/roundcubemail-0.3-stable mail.example.net
chown -R nobody:nobody mail.example.net
chown -R apache:apache mail.example.net/temp
cd mail.example.net/config

check the new configs, 

diff -u ../../mail.example.net.old/config/main.inc.php.dist main.inc.php.dist
diff -u ../../mail.example.net.old/config/db.inc.php.dist db.inc.php.dist
sed '/\/\*/,/*\//d; /^\/\//d; /^$/d;' main.inc.php.dist > main.inc.php
vi main.inc.php
cp /root/db.inc.php .
cd ..

 

Check if you need to update the db, 

find . | grep .sql$
grep Updates SQL/mysql.update.sql
#vi SQL/mysql.update.sql
#mysql -uroot -p DBNAME < SQL/mysql.update.sql

 

Clean up, 

rm -f /root/db.inc.php
rm -f /root/main.inc.php
rm path/to/roundcubemail-*.tar.gz

 

Ref. http://trac.roundcube.net/wiki/Howto_Upgrade 

 

 

Design customization 

You may want to place your company's logo instead or beside RoundCube's logo. On home page, mail listing and error pages, 

cd skins/default/templates
vi login.html
vi error.html
vi printmessage.html

Note. as for 'login.html', eventually center the logo, 

#<div style="text-align:center;">
#</div>

 

For your smaller logo on various pages, 

cd skins/default/includes/
vi header.html

 

 

(FR) Configuration utilisateur 

Personnaliser votre webmail, 

  Préférences > onglet Identités 

  sélectionner l'identitée > Nom à afficher : ... 

  sélectionner l'identitée > Signature : ... 

 

  Préférences > onglet Dossiers 

  abonnez vous à tous les dossiers 

 

  Préférences > onglet Préférences 

Interface utilisateur > Langue : French (Français) 

Interface utilisateur > Fuseau horaire : Automatique

Interface utilisateur > Heure d'été 

Interface utilisateur > Nombre de lignes par page : 50 (bcp plus rapide à charger...) 

Interface utilisateur > Use message index for sorting by date (sinon les mails ne sont pas dans l'ordre d'arrivée) 

Vue du courrier > Notifications à l'expéditeur : ignorer 

Vue du courrier > Chercher les nouveaux messages : toutes les 3 minutes

Vue du courrier > Vérifier tous les dossiers pour les nouveaux messages 

Affichage des messages > Afficher en HTML

Affichage des messages > Afficher les images distantes : venant d'expéditeurs connus 

Affichage des messages > After message delete/move display the next message

Préférences du serveur > Marquer le message comme lu à la suppression 

 

N.B. si vous n'utiliser la corbeille que pour les spams ou autres mails à supprimer définitivement, 

  Préférences du serveur > Vider la corbeille à la déconnexion 

 

 

Todo 

Configure signature above quotes. 

 

 

Themes (skins) 

http://www.roundcubethemes.net/ 

 

 

References 

RoundCube webmail project : http://roundcube.net/ 

Howto_Install : http://trac.roundcube.net/wiki/Howto_Install 

Howto_Config : http://trac.roundcube.net/wiki/Howto_Config 

HOWTO: Install Roundcube Webmail from SVN (was CVS) on FreeBSD : http://fak3r.com/2005/11/15/howto-install-roundcube-webmail-from-svn-was-cvs-on-freebsd/