Skip navigation.
Home
Openness protects your investment.

Directory Enabled Horde: Part I

LDAP

Horde is a suite of web applications for basic productivity tasks such as e-mail, todo lists, notes, etc... They are developed in the common and easy to use PHP programming language. Of the myriad web e-mail interfaces Horde is quite possibly the premier - it has an amazing breadth of features, is elegently customizable (which we will demonstrate in this series), is straight forward to configure, and has an appealing user interface.

Most Horde instances use a local SQL database, either MySQL or PostgreSQL, to store things like user preferences, notes, and the addressbook. Doing so is a very reasonable solution. But this series is going to take a different approach - we are going to install and configure Horde, IMP (Mail), and Turba (Address book) to use only an OpenLDAP DSA for content storage. We are going to assume you have a basically operational Cyrus IMAP server (although any capable IMAP server should be acceptable), OpenLDAP DSA, and Apache webserver with PHP enabled. We will cover modifications required to either of those services to deploy this application. Most current distributions will provide you almost all the above out-of-the-box.

Why would you want to use your DSA for this application instead of installing either MySQL or PostgreSQL? There are several reasons.

  • You already have a working DSA and don't want to add yet-another-data-repository to your network.
  • Since LDAP is a replicated service your web applications backend is automatically redundant.
  • You wish to use the same data from multiple applications; by storing you address book in LDAP you can use that same data from your other mail clients like Microsoft Outlook or Novell Evolution, this is not true if your data is in an SQL database.
  • You want to centrally manage user data from a single console; so your user accounts, Horde preferences, Samba, mail, DNS, etc... information is all in one repository.

Of course there is no reason you can't use a directory enable installation of Horde in conjunction with traditional databases as well.

First step is to download the Horde, Turba, and IMP to your webserver. We are going to assume you place these files in "/tmp".

Now we need to upack those tarballs, rename the directories, and set the permissions on the configuration files so that Apache can write to them. Change to the web root directory and then...
tar xzvf /tmp/horde-3.0.5.tar.gz
mv horde-3.0.5/ horde
cd horde
tar xzf /tmp/imp-h3-4.0.tar.gz
mv imp-h3-4.0/ imp
tar xzf /tmp/turba-h3-2.0.3.tar.gz
mv turba-h3-2.0.3/ turba
cd config
for f in *.dist; do cp $f `basename $f .dist`; done
chmod 666 *.php;chmod 777 .
cd ../imp/config
for f in *.dist; do cp $f `basename $f .dist`; done
chmod 666 *.php;chmod 777 .
cd ../../turba/config
for f in *.dist; do cp $f `basename $f .dist`; done
chmod 666 *.php;chmod 777 .

Of course if you are installing newer versions you need to change the filenames. And don't worry, we will be securing those configuration files later.

The Horde suite makes heavy use of the PEAR class libraries and requires a variety of PEAR modules to be installed. Most notably: Log, Mail, Mail_MIME, DB, File, and Date, You probably also want Auth_SASL and Services_Weather. Fortunately installing PEAR modules is easy.


pear install -o Log Mail_Mime Date File Auth_SASL
pear -d preferred_state=beta install -a Services_Weather

I didn't install DB and Mail because I already had those. It it just fine to try and install modules you already have, the pear utility will just tell you about what is going on. The second line is a little strange because the Services_Weather module is considered a beta module.

You can also make sure your PEAR is up to date with a: pear upgrade-all.

PEAR attempts to download these modules via HTTP. So if you need to transverse a proxy server you need to tell the pear utility be executing a pear config-set command: pear config-set http_proxy http://kohocton:3128. You can view the current PEAR configuration by doing a: pear config-show. You may need to add the hostname from "master_server" to your proxy server's "approved site" depending upon how it is configured (PEAR does not seem to support authenticating proxy servers).

Once PEAR is up to date you should be able to visit the Horde suite's test page: http://{your-servername}/horde/test.php

This page lists all the requirements of Horde and sometimes gives helpful hints about your PHP configuration or how to install required modules. Everything on this page needs to be OK before proceeding.

Now it is on to Horde setup!

Note: Horde setup requires the PHP domxml extension, so make sure you have that installed before proceeding. If you don't have domxml you can still configure Hode but you will need to tweak all the configuration files by hand. On my CentOS webserver installing PHP domxml was as easy as: up2date --install php-domxml; service httpd restart.

Go to http://{your-servername}/horde

You should automatically be logged in! Select "Administration" and then "Setup" and you should see the Horde administrative interface.

To be continued....
--
Part I:Installing Horde
Part II:Setting up preferences
Part III:Sending Authenticated Mail