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 one of the traditional webmail clients. It provides the 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, the 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
## 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/
The 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
## 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.
There are still other parts missing such as SSL encrypted connection, anti-spam service, digital signatures using opendkim, filter rules, etc for a full-featured mail server. In the next few related articles, we will be adding additional features to the set-up so stay tuned.
Of course, if you are one of our Linux VPS Hosting customers, you don’t have to do any of this, simply ask our admins, sit back and relax. Our admins will set this up for you immediately. For updates, you can also read how to Install Roundcube Webmail on Ubuntu 20.04.
PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.