Horde

Horde applications are written in PHP, the most popular application being its mail platform, IMP, which was the first Horde application.

Horde modules should run on any platform that can run PHP (including as a cgi), assuming any required support modules (IMAP, for instance) are present.

Before You Begin
Understand that these instructions are not particular to satisfying the needs of DreamHost users. More documentation on getting the required modules is required.

Installing Horde will require recompiling your PHP4 or PHP5 installation with the IMAP extension and some PEAR modules. And yes, you can do this on a shared host plan. Hopefully, there will soon be information on how to do this with all the required PEAR modules.

You will also need to create a database for Horde from the Control Panel. Make sure to write this information down because you will need it later.

This link helps you install a local PEAR copy on a shared host, then follow the PHP.ini to know how to use your own php.ini.

After that, add the following line at php.ini: include_path=".:/usr/local/lib/php:/home/user/pear/pear/php"

Installation
 Log into your account using SSH. Get the link to the Horde Application Framework from the Horde website and download it using wget:

wget ftp://ftp.horde.org/pub/horde/horde-latest.tar.gz

  Uncompress the file. tar -xzf horde-latest.tar.gz   Rename the directory to horde. You will have problems configuring the software if you do not do this as the Horde directory structure is fixed in the code. It expects the horde/ folder to be located in the document root folder. mv horde-*/ horde/   Make a copy of the database script in your root directory. cp horde/scripts/sql/create.mysql.sql create.mysql.sql  Before we can run the database script, we must edit it. Using your SSH text editor of choice, open the create.mysql.sql file and delete every thing above the line

USE horde;

then save and exit back to the command prompt.   Run MySQL and execute the Horde database script. It can be found in horde/scripts/sql/. mysql -u DB_USER -p -h DB_HOST DATABASE source create.mysql.sql;  Make copies of the Horde default configuration files. cd config for f in *.dist; do cp $f `basename $f .dist`; done </li> You can now run the Horde system configuration test. Point your browser to http://your-server/horde/test.php. If everything checks out, you can now configure Horde. </li> </ol>

Note: Horde will not run properly if it cannot find the local installation of PEAR. In order to resolve this problem, you must add the following lines to the top of horde/lib/Horde.php:

ini_set(  'include_path',   ini_get( 'include_path' ) . PATH_SEPARATOR . "/home/yourusername/pear/php" );

Configuration
Once the Horde Application Framework is installed properly, move on to configuring Horde. Instructions can be found here: Horde Application Framework install documentation

The trick to configuring Horde to use IMP and other tools is to set up an authentication method first. Configure the database settings, then set the authentication method to SQL authentication and save the changes. Create at least one user, list them as an administrative user under the Authentication tab for Horde, and log out. If all is configured properly, you will be able to log back in and complete the rest of your installation.

Installing Horde Applications
Horde applications should be installed in the horde/ directory, and installed according to the install instructions found in docs/INSTALL for each package. Be sure to run the following for each app:

cd config for f in *.dist; do cp $f `basename $f .dist`; done

within each application's directory (imp/config, ingo/config, etc.) before configuring it within Horde. Install apps one at a time, logging in and out of Horde for each configuration.

IMP Authentication
If you wish to use a user's mailbox username and password to authenticate, you may do so after configuring IMP by going to Administration > Setup > Horde > Authentication and setting the authentication type to Let a Horde application handle authentication and setting imp to be the authentication provider. Be sure to set a valid mailbox username to have administrative rights (lest you cut off the branch you're standing on :).