Table of Contents

Environment

Debian (Etch/Lenny), ispCP, MySQL, Apache 2.x, Mailserver

Info

Current Version: 0.3.1 Stable with API
http://roundcube.net/
For any Help –> http://www.isp-control.net/forum/thread-7816.html

Installation

Preparation

# cd /usr/local/src
# mkdir roundcube
# cd roundcube

Download

# wget http://heanet.dl.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz

Decompress

# tar xvfz roundcubemail-0.3.1.tar.gz

Prepare the ispCP directory

# mkdir /var/www/ispcp/gui/tools/roundcube

Copy Sourcecode

# cp -r roundcubemail-0.3.1/* /var/www/ispcp/gui/tools/roundcube

Set correct user and groups

# chown -R vu2000:www-data /var/www/ispcp/gui/tools/roundcube
# cd /var/www/ispcp/gui/tools/roundcube
# chmod 755 temp logs

Create Database

# mysql -u root -p

Your MySQL Root password

replace yourpassword with your

CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'yourpassword';
quit

SQL File import

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

adjust your Roundcube Database Password accordingly

Configure Roundcube

# cd /var/www/ispcp/gui/tools/roundcube/config
# cp db.inc.php.dist db.inc.php
# cp main.inc.php.dist main.inc.php
# pico db.inc.php

and edit the following lines

$rcmail_config['db_dsnw'] = 'mysql://roundcube:YourPASSWORD@localhost/roundcubemail';

Adjust default settings

# pico main.inc.php
line 44: $rcmail_config['message_cache_lifetime'] = '30m';
line 55: $rcmail_config['default_host'] = 'localhost';
line 127: $rcmail_config['session_lifetime'] = 30;
line 180: $rcmail_config['create_default_folders'] = TRUE;

Adjust Apache

# pico /etc/apache2/sites-available/00_master.conf

and add the following entry:

Alias /cube /var/www/ispcp/gui/tools/roundcube/

(if you like you can also simply replace Webmail, ich prefer the additional alternative)

Create subdomain for Roundcube

# pico /etc/apache2/sites-available/06-roundcube

insert the following content:

<VirtualHost XXX.XXX.XXX.XXX:80>
    ServerAdmin     webmaster@yourdomain.tld
    DocumentRoot    /var/www/ispcp/gui/tools/roundcube

    ServerName      cube.yourdomain.tld
    ServerAlias     cube.*

    ErrorLog        /var/log/apache2/users/cube-error.log
    TransferLog     /var/log/apache2/users/cube-access.log
    CustomLog       /var/log/apache2/cube-traf.log traff
    CustomLog       /var/log/apache2/cube-combined.log combined

    <IfModule suexec_module>
           SuexecUserGroup vu2000 vu2000
    </IfModule>

    <Directory /var/www/ispcp/gui/tools/roundcube>
        Options -Indexes Includes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    <IfModule mod_fcgid.c>
        <Directory /var/www/ispcp/gui/tools/roundcube>
            FCGIWrapper /var/www/fcgi/master/php5-fcgi-starter .php
            Options +ExecCGI
        </Directory>
        <Directory "/var/www/fcgi/master">
            AllowOverride None
            Options +ExecCGI MultiViews -Indexes
            Order allow,deny
            Allow from all
        </Directory>
    </IfModule>
    <IfModule mod_fastcgi.c>
        ScriptAlias /php5/ /var/www/fcgi/master/
        <Directory "/var/www/fcgi/master">
            AllowOverride None
            Options +ExecCGI MultiViews -Indexes
            Order allow,deny
            Allow from all
        </Directory>
    </IfModule>

    <IfModule mod_php5.c>
        <Directory /var/www/ispcp/gui/tools/roundcube>
            php_admin_value open_basedir "/var/www/ispcp/gui/tools/roundcube/:/etc/ispcp/:/var/run/ispcp.lock:/proc/:/bin/df:/bin/mount:/var/log/rkhunter.log:/var/log/chkrootkit.log:/usr/share/php/"
            php_admin_value session.save_path "/var/www/ispcp/gui/phptmp/"
            php_admin_value upload_tmp_dir "/var/www/ispcp/gui/phptmp/"
        </Directory>
    </IfModule>


</VirtualHost>

The data for <VirtualHost xxx.xxx.xxx.xxx:80, ServerAdmin und ServerName need to be adjusted with regard to your own conditions.

Enable the Site

# a2ensite 06-roundcube

Restart Apache

# /etc/init.d/apache2 force-reload

Password Changer / Optional Plugin

Since Roundcube 0.3 has an API we can start to use Plugins.
There is a “ispCP Password-Changer Plugin” available (thanks to TheCry)
So is the customer able to change his password in Roundcube directly.

Download the Plugin

# cd /var/www/ispcp/gui/tools/roundcube/plugins
# wget http://www.deluxe-styles.de/ispcp/ispcp_pw_changer.tar.gz
# tar -xvzf ispcp_pw_changer.tar.gz
# chown -R vu2000:www-data ispcp_pw_changer
# cd /var/www/ispcp/gui/tools/roundcube/plugins/ispcp_pw_changer

Configure the Plugin

Now we need do config the Plugin

# mv config.inc.php.dist config.inc.php
# vi config.inc.php

Please set now your MySQL Login in the config, and Copy the two Key “ispcp_db_pass_key” and “ispcp_db_pass_iv” from ”/var/www/ispcp/gui/include/ispcp-db-keys.php” into the fields.

Now we only need to enable the Plugin in the main.inc.php

# vi /var/www/ispcp/gui/tools/roundcube/config

And modify it like this:

$rcmail_config['plugins'] = array('ispcp_pw_changer');

Sieve-Plugin for Serverside-Filtering

Needs Dovecot with pysieved
- http://www.isp-control.net/documentation/howto/mail/replace_courier_with_dovecot
- http://www.isp-control.net/documentation/howto/mail/install_avelsieve_for_webmail

Configure

Since Roundcube 0.3 the Managsieve Plugin is included per default, you only need to enable it.

# vi /var/www/ispcp/gui/tools/roundcube/config/main.inc.php

And add the Plugin in to the Plugin array

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array('ispcp_pw_changer', 'managesieve');

Thats it!