Install and set-up Roundcube webmail interface




The following article is about how to install and set-up the Roundcube webmail interface on a CentOS VPS.

It is actually part 2 of our mailserver with virtual users and domains using Postfix and Dovecot on a CentOS 6 VPS series.

What is Roundcube?

Roundcube is a web-based IMAP email client written in PHP. Roundcube’s most prominent feature is the pervasive use of Ajax technology to present a more fluid and responsive user interface than the one of traditional webmail clients. It provides full functionality you expect from an email client, including MIME support, address book, folder manipulation, message searching, spell checking etc…

As usual, before proceeding any further, SSH to your CentOS 6 VPS, fire-up a screen session and make sure your system is fully up-to-date by running:

## screen -U -S roundcube-screen
## yum update

Roundcube requires PHP, a webserver and a database server. We are going to use the LAMP stack here, so, if LAMP is not already set-up on your system please check our fine tutorial on how to install LAMP (Linux Apache MySQL and PHP) on CentOS 6.

Ok, next step is to set-up a database for Roundcube using the following commands:

## mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS `roundcube`;
mysql> GRANT ALL PRIVILEGES ON `roundcube` . * TO 'roundcube'@'localhost' IDENTIFIED BY 'mySecretPassword';
mysql> FLUSH PRIVILEGES;
mysql> quit

make sure you change ‘mySecretPassword‘ with your own one.

Before downloading and installing Roundcube, let’s first create Roundcube’s Apache configuration file in /etc/httpd/conf.d/90-roundcube.conf by using an editor:

## vim  /etc/httpd/conf.d/90-roundcube.conf

and paste the following:

Alias /webmail /var/www/html/roundcube

<Directory /var/www/html/roundcube>
    Options -Indexes
    AllowOverride All
</Directory>

<Directory /var/www/html/roundcube/config>
    Order Deny,Allow
    Deny from All
</Directory>

<Directory /var/www/html/roundcube/temp>
    Order Deny,Allow
    Deny from All
</Directory>

<Directory /var/www/html/roundcube/logs>
    Order Deny,Allow
    Deny from All
</Directory>

So far so good. Now, download and set-up the latest version of Roundcube to /var/www/html/roundcube using:

## curl -L "http://sourceforge.net/projects/roundcubemail/files/latest/download?source=files" > /tmp/roundcube-latest.tar.gz
## tar -zxf /tmp/roundcube-latest.tar.gz -C /var/www/html
## rm -f /tmp/roundcube-latest.tar.gz
## cd /var/www/html
## mv roundcubemail-* roundcube
## chown root: -R roundcube/
## chown apache: -R roundcube/temp/
## chown apache: -R roundcube/logs/

Next thing to do, is to set-up Roundcube’s main.inc.php configuration file. But, before setting it up, let’s first create all the necessary database tables for Roundcube using:

## mysql -u roundcube -p"mySecretPassword" roundcube < roundcube/SQL/mysql.initial.sql

again, make sure you use the correct MySQL user/password combination

with tables in place, proceed with copying the main.inc.php.dist sample configuration file and editing main.inc.php:

## cp roundcube/config/main.inc.php.dist roundcube/config/main.inc.php
## vim roundcube/config/main.inc.php
change:
  $rcmail_config['default_host'] = '';
to
  $rcmail_config['default_host'] = 'localhost';

change:
  $rcmail_config['smtp_server'] = '';
to
  $rcmail_config['smtp_server'] = 'localhost';

change:
  $rcmail_config['smtp_user'] = '';
to
  $rcmail_config['smtp_user'] = '%u';

change:
  $rcmail_config['smtp_pass'] = '';
to
  $rcmail_config['smtp_pass'] = '%p';

change:
  $rcmail_config['quota_zero_as_unlimited'] = false;
to
  $rcmail_config['quota_zero_as_unlimited'] = true;

change:
  $rcmail_config['preview_pane'] = false;
to
  $rcmail_config['preview_pane'] = true;

change:
  $rcmail_config['read_when_deleted'] = true;
to
  $rcmail_config['read_when_deleted'] = false;

change:
  $rcmail_config['check_all_folders'] = false;
to
  $rcmail_config['check_all_folders'] = true;

save and close the configuration file and proceed with setting up Roundcube’s database configuration file:

## cp roundcube/config/db.inc.php.dist roundcube/config/db.inc.php
## vim roundcube/config/db.inc.php
change:
  $rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
to
  $rcmail_config['db_dsnw'] = 'mysqli://roundcube:mySecretPassword@localhost/roundcube';

save and close the configuration file and remove the installer directory using:

## rm -rf roundcube/installer/

finally, restart Apache using:

## service httpd restart

and login to your webmail at http://yourdomain.com/webmail


Adding Roundcube Webmail to the mailserver set-up with virtual users and domains using Postfix and Dovecot on a CentOS VPS provides you with a web-based email client solution for managing your user’s emails.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>