ISPConfig 3 Roundcube Plugin on Debian 9 (Stretch)
- Operating system version: Debian 9.4 and 9.5 Stretch
- Roundcube version: 1.2.3+dfsg.1-4+deb9u1 and u2
- ISPConfig 3 version: 3.1.11 and 3.1.13
This howto is based on ISPConfig3_roundcube Installation Instructions from Manual.
Use the Roundcube version that comes with Debian 9, install it as instructed in the Perfect Server Guide for Debian Stretch.
Use current ISPConfig, now latest is version 3.1.13.
Add ISPConfig Remote User
Add ISPConfig remote user for Roundcube use. Choose a suitable name, I use rcmail-remote. Choose a good password, I usually generate passwords with apg, do apt-get install apg first.
apg -m 12 -l M NCL
Create the remote user in ISPConfig Panel, tab System, under User Management is "Remote Users". Click "Add new user" -button.
I did not tick Remote Access:, my setup has separate e-mail server where mail files and Roundcube and Dovecot are installed. So even though this is "remote user" it does not need remote access in my case.
For this user choose:
- 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
That list is in the order the items appear in ISPConfig Panel.
Install ISPConfig RoundCube Plugin
Fetch the ISPConfig3-plugins from Github. I used latest version for RoundCube 1.2.3. The plugin author writes in the manual to check out from Subversion directly to RoundCube root directory. I prefer to check out elsewhere, so I do not mess up the system directory where apt-get installs files.
The Readme.Debian in /usr/share/doc/roundcube advices to "Add your plugin in /var/lib/roundcube/plugins.". I checkout from svn to /root/ISPConfig3_plugins and copy from there to /var/lib/roundcube/plugins. The plugins from Debian packages are installed in /usr/share/roundcube and there is a symbolic link to those from /var/lib/roundcube/plugins. Install Subversion to get command svn. (apt-get install subversion).
svn co https://github.com/w2c/ispconfig3_roundcube/trunk/ .
cp config.inc.php.dist config.inc.php
Edit the file copied at last command of previous command lines. Fill in the remote user info created in Step 2.
Original file looks like this:
<?php $rcmail_config['identity_limit'] = false; $rcmail_config['remote_soap_user'] = 'roundcube'; $rcmail_config['remote_soap_pass'] = 'roundcube'; $rcmail_config['soap_url'] = 'http://22.214.171.124:8080/remote/'; ?>
Change the remote_soap_user, remote_soap_pass (user and pass created in Step 2) and soap_url. If you use ISPConfig panel with https://, use the same here for soap_url. You can use IP-address or hostname and domain in soap_url. Port number is the same as for ISPConfig panel.
Edit Roundcube configuration, in file /etc/roundcube/config.inc.php. Search for "List of active plugins". Debian Stretch does not enable any plugins by default, so the list is empty unless you have already enabled some plugins. If the list is empty, i.e. looks like this:
// List of active plugins (in plugins/ directory) // Debian: install roundcube-plugins first to have any $config['plugins'] = array( );
just replace it with this:
$config['plugins'] = array( "jqueryui","ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_autoselect", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter", "ispconfig3_forward", "ispconfig3_wblist" );
The order of plugins is important! Do not change the order unless you know what you are doing.
If it was non-empty, add the ISPConfig3 plugins after the existing plugins. If some plugin is not needed, remove it from the list and it is no longer enabled.
If you are using only one mail host, do remove the ispconfig3_autoselect plugin, since you do not need it that case and it creates just problems if you fail to configure it properly.
I removed ispconfig3_forward because I noticed errors in /var/log/roundcube/errors for line 135 in file ispconfig3_forward/ispconfig3_forward.php.
Copy Plugin to system location
Now you must copy the plugins from the checkout directory to /var/lib/roundcube. Do it for example like this:
for f in ispconfig3_* ; do echo $f ; cp --recursive $f /var/lib/roundcube/plugins/ ; done
If the new Plugins are shown in Settings, but clicking them pops up error message "Soap Error: Not Found" or "Soap Error: Bad Request" check the soap_url setting. Maybe it is missing slash character "/" at the end.
Test and enjoy. There is a 5th item in the Settings menu created by these plugins.
If you get errors, read Troubleshooting FAQ by ISPConfig3 plugins author from https://github.com/w2c/ispconfig3_roundcube/wiki/Troubleshooting---FAQ. If that does not help, read logs from /var/log/roundcube/errors. If you still have problems, see other logs in /var/log and /var/log/apache2 directories. If nothing helps, check you have installed the server according to the Perfect Server Guide. I have been told the VM image does not have php-soap installed, and the ISPConfig installed by script also lacks this PHP package.