Mailserver with ldap tutorial – part 8: webmail interface

Sometimes it can be very useful to be able to read mails via a webmail interface. I’ve decided to use the very powerful but also a bit complex horde framework which also offers clients for calendaring and adressbooks.

Edit 15.05.2012: Meanwhile I’ve switched to roundcube. Horde has proven to be over complicated and rough in the process of updating. As the installation auf roundcube works more or less out of the box I’m not going to describe it here.

This is a post from my old blog It has been moved here and slightly edited for better readability. It's also been adjusted to the new layout.
The content however is old and might be outdated.

This is step 1 of the 8 step tutorial for setting up a mailserver with openldap, postfix and dovecot using virtual users. You can find the overview here.


With the current version 4 of the horde framework the install process has moved from the package manger based machanisms to a modular php-pear mechanism. When creating my setup I’ve (more or less) followed the instruction in this blogpost.
First you have to create a directory for your horde installation eg /var/www/webmail/:

mkdir /var/www/webmail/

This should be owned by the apache-user.

chown www-data:www-data /var/www/webmail

To me it makes sense to create an own pear instance juts for horde to make sure nothing is interfering here. Create a pear configuration in /var/www/webmail and install pear there:

pear config-create /var/www/webmail /var/www/webmail/pear.conf
pear -c /var/www/webmail/pear.conf install pear

Now you cann install horde:

/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf channel-discover
/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf install horde/horde_role
/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf run-scripts horde/horde_role
/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf install -a -B horde/webmail
/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf install -a -B horde/passwd

The passwd package is only necessary if you want to allow your users to change their password via horde.

Configure apache

You will have to make some settings either in the apache vhost config or in /var/www/webmail/.htaccess. If you are using the .htaccess make sure the option allow_overide ALL is set in your apache vhost conf. These two settings are necessary:

php_value include_path /var/www/webmail/pear/php
SetEnv PHP_PEAR_SYSCONF_DIR /var/www/webmail

Finish the installation

Now you can finfish youtr horde install by:

PHP_PEAR_SYSCONF_DIR=/var/www/webmail/ php -d include_path=/var/www/webmail/pear/php /var/www/webmail/pear/webmail-install

Configure horde

Now you should be able to login to the horde webinterface and make all settings as you need them. To prevent the settings from being changed by anybody you could change the owner of /var/www/webmail/ to root and give other users only read and execute rights:

chown -R root:root /var/www/webmail
chmod -R 755 /var/www/webmail


As updates are being delivered autmatically (as with aptitude in horde3) you might want to subscribve to the horde “announce” mailinglist. Updating istself is pretty easy:

/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf upgrade-all

Edited on Jan 9th 2015 for better readability although I’m not using horde anymore.
Edited on Aug 17th 2017 for better readability.

Leave a Reply

Your email address will not be published.