Using RoundCube Webmail With ISPConfig 3 On Debian Wheezy (nginx)

Want to support HowtoForge? Become a subscriber!
Submitted by falko (Contact Author) (Forums) on Wed, 2013-10-09 16:50. :: Debian | ISPConfig | Web Server | Control Panels | Email | nginx

Using RoundCube Webmail With ISPConfig 3 On Debian Wheezy (nginx)

Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>
Follow me on Twitter
Last edited 10/09/2013

This guide explains how to install the RoundCube webmail application on a Debian Wheezy server running ISPConfig and nginx, and how to enable the ISPConfig 3 plugins for RoundCube so that users can perform actions like changing their email passwords from within RoundCube. Roundcube webmail is a browser-based multilingual IMAP client with an application-like user interface; it comes with functions like MIME support, address book, folder manipulation, message searching and spell checking.

I do not issue any guarantee that this will work for you!


1 Preliminary Note

This tutorial assumes you are using nginx as the web server on your ISPConfig 3 server; this tutorial will not work for Apache. I'm going to install RoundCube from the Debian Wheezy repositories - it is a reasonably recent version ( vs 0.9.1 (current stable version)).

I will show how to configure a vhost for RoundCube so that it can be accessed over the alias /webmail (e.g.


2 Creating A Remote User In ISPConfig

The ISPConfig 3 plugins for RoundCube work through ISPConfig's remote API. To use this API, we need a remote user. To create such a user, go to System > User Management > Remote Users and click on the Add new user button:

Provide a username and password for the user...

... and enable the following functions:

  • Server functions
  • Client functions
  • Mail user functions
  • Mail alias functions
  • Mail spamfilter user functions
  • Mail spamfilter policy functions
  • Mail fetchmail functions
  • Mail spamfilter whitelist functions
  • Mail spamfilter blacklist functions
  • Mail user filter functions

Then click on Save.


3 Installing RoundCube

We can install RoundCube as follows:

apt-get install roundcube roundcube-plugins roundcube-plugins-extra

You will see the following questions:

Configure database for roundcube with dbconfig-common? <-- Yes
Database type to be used by roundcube: <-- mysql
Password of the database's administrative user: <-- yourrootsqlpassword (the password of the MySQL root user)
MySQL application password for roundcube: <-- roundcubesqlpassword
Password confirmation: <-- roundcubesqlpassword

This will create a MySQL database called roundcube with the MySQL user roundcube and the password roundcubesqlpassword.

Next go to your website in ISPConfig. On the Options tab, you will see the nginx Directives field:

Fill in the following directives and click on Save (it does not matter if you have PHP enabled for this vhost or not because this code snippet uses the system's default PHP which runs under the user and group www-data which is important because RoundCube is installed outside of the vhost's document root - in /var/lib/roundcube):

client_max_body_size 100M;

location /roundcube {
         root /var/lib/;
         index index.php index.html index.htm;
         location ~ (.+\.php)$ {
                    try_files $uri =404;
                    include /etc/nginx/fastcgi_params;
                    # To access SquirrelMail, the default user (like www-data on Debian/Ubuntu) must be used
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_intercept_errors on;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_buffer_size 128k;
                    fastcgi_buffers 256 4k;
                    fastcgi_busy_buffers_size 256k;
                    fastcgi_temp_file_write_size 256k;
         location ~* /.svn/ {
                     deny all;
         location ~* /README|INSTALL|LICENSE|SQL|bin|CHANGELOG$ {
                     deny all;
location /webmail {
         rewrite ^ /roundcube last;

With this configuration, RoundCube will be accessible under the URLs and


4 Configuring RoundCube

Open /etc/roundcube/

vi /etc/roundcube/

... and set $rcmail_config['default_host'] = 'localhost'; (or the hostname or IP address of your mail server if it is on a remote machine):

$rcmail_config['default_host'] = 'localhost';

Otherwise RoundCube will ask for a hostname before each login which might overstrain your users - we want to make usage as easy as possible.

Next install the ISPConfig 3 plugins for RoundCube:

cd /tmp
git clone
cd /tmp/ispconfig3_roundcube/
mv ispconfig3_* /var/lib/roundcube/plugins
cd /var/lib/roundcube/plugins
mv ispconfig3_account/config/ ispconfig3_account/config/

Open ispconfig3_account/config/

vi ispconfig3_account/config/

... and fill in the login details of your ISPConfig remote user and the URL of the remote API - my ISPConfig installation runs on, so the URL of the remote API is

$rcmail_config['identity_limit'] = false;
$rcmail_config['remote_soap_user'] = 'roundcube';
$rcmail_config['remote_soap_pass'] = 'Sw0wlytlRt3MY';
$rcmail_config['soap_url'] = '';

Finally open /etc/roundcube/ again...

vi /etc/roundcube/

... and enable the jquerui plugin plus the ISPConfig 3 plugins...

// ----------------------------------
// ----------------------------------

// List of active plugins (in plugins/ directory)
//$rcmail_config['plugins'] = array();
$rcmail_config['plugins'] = array("jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");

... and change the skin from default to classic (otherwise the ISPConfig 3 plugins will not work):

// skin name: folder from skins/
$rcmail_config['skin'] = 'classic';

That's it; now you can access RoundCube under the alias /webmail (e.g. Log in with the email address and password of an email account created through ISPConfig:

This is how RoundCube looks:

Under Settings > Account you can use the ISPconfig 3 plugins for RoundCube to modify your settings, for example...

... you can set a new password for your email account without using ISPConfig:


5 Links


About The Author

Falko Timme is the owner of nginx WebhostingTimme Hosting (ultra-fast nginx web hosting). He is the lead maintainer of HowtoForge (since 2005) and one of the core developers of ISPConfig (since 2000). He has also contributed to the O'Reilly book "Linux System Administration".

Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Submitted by byman64 (not registered) on Mon, 2014-12-01 23:08.

Hi, great article, I installed roundcube on my ubuntu server 14.04 and it works fine. 

I would like upgrade roundcube to last version 1.x but I am not sure how to it without ruine my configuration. Any idea?



Submitted by nicram0 (registered user) on Tue, 2014-07-22 11:43.

Hi, I've installed all packages from this giu, all ispconfig plugins works but only one doesn't, it's autoreply plugin. when i click on link in roudcube then nothing is showing :/ rest of plugins works.

does anybody may know, what is wrong?

how can i debug this?


Submitted by jkounis (registered user) on Fri, 2014-07-11 04:27.

When I tried this, it couldn't load any css or images from the roundcube directory. I had to add the following to the "location /roundcube" block to make it work:

location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/lib/;

Submitted by julien (not registered) on Sun, 2014-08-17 22:13.

That fix works.

 Also, in /etc/roundcube/ the language at

<code> $rcmail_config['language'] = 'ar_AR';</code>

 need to be changed into en_US, or you may see eveything in arabic.


Submitted by xfib (registered user) on Fri, 2014-06-27 20:50.
Can someone tell me how to fix this nginx/error.log

2014/06/27 22:15:14 [error] 3362#0: *1088 FastCGI sent in stderr: "PHP message: PHP Strict Standards: Non-static method PEAR::setError Handling() should not be called statically in ***/program/include/iniset.php on line 131" while reading response header from upstream, upstream: "fastcgi://unix:/var/lib/php5-fpm/ispconfig.soc




Submitted by Spodnet (not registered) on Mon, 2013-11-04 21:15.

The version of roundcube with wheezy is out of date. The backports version is 0.9.x.

To add backports, add this to your apt sources.list, replacing YOURMIRROR with your choosen mirror.


deb wheezy-backports main


If you use nginx, then you will need to use:


aptitude -R -t wheezy-backports install roundcube-mysql roundcube-plugins roundcube-plugins-extra


If not


aptitude -t wheezy-backports install roundcube-mysql roundcube-plugins roundcube-plugins-extra


Should work.

Submitted by trunganh12 (registered user) on Thu, 2013-10-31 20:03.
Submitted by Atatoth (not registered) on Fri, 2013-10-11 00:35.
for me not working.... when i add plugins on every plugin page i see loading and after some time nginx error 504 :(
Submitted by Horfic (not registered) on Thu, 2013-10-10 12:10.

I do not recommend to install roundcube per debian package, as it is outdate!!!Current roundcube version is like 0.9.x The debian package only got like 0.5.x at maximum.

Submitted by admin (registered user) on Fri, 2013-10-11 11:22.
RoundCube version in Debian Wheezy is 0.7.2, in Debian Jessie (testing) it is 0.9.4. I've tested both, and both were working fine.