Introduction

To introduce this material accurately, I give you a quote from the developers web site.

Horde Groupware Webmail Edition is a free, enterprise ready, browser based communication suite. Users can read, send and organize email messages and manage and share calendars, contacts, tasks and notes with the standards compliant components from the Horde Project. Horde Groupware Webmail Edition bundles the separately available applications IMP, Ingo, Kronolith, Turba, Nag and Mnemo.

Quote from: http://www.horde.org/apps/webmail 2011 Oct 09
The Groupware features not mentioned here include:

  • Task Management
  • Event Scheduling
  • Contacts Management
  • Calendar
  • Notes

The software is written primarily in PHP, and is compatible with MySQL, PostgreSQL, Oracle, and Microsoft SQL-Server.

Assumptions and Conventions

Assumptions

For the purposes of this guide, it will be assumed that you are:

  • using a fresh install of Ubuntu 10.04.3 LTS (32 bit Server),
  • using a working Apache2, PHP, MySQL server,
  • using /var/www/ as your web root,
  • working entirely from the command line.

In theory not much will change for 64 bit servers, but I do not have one.

Typographic Conventions

Text You Have To Change will be listed in italics before the block in which it appears.

Code will be
placed in blocks like this.

Locations (Directories) of Significance

  • /build/buildd/php5-5.3.2/pear-build-download This is where PECL currently places its downloaded packages. I will refer to this as the PECL directory.

  • /usr/lib/php5/20090626+lfs/ This is where you PHP extensions go once created, this is called the extension_dir in the php.ini file and in this document.

  • /etc/php5/apache2 The location of your php.ini file.
  • /etc/apache2/conf.d The location at which your php extensions config file will be created

Installing Necessary Packages

Since Ubuntu is not meant to be a developer platform out of the box, some packages are missing. The first step is installing those packages.

sudo apt-get install php5-dev php-pear php5-tidy libidn11-dev libmagickwand-dev libmagick++2 imagemagick libsasl2-2 libsasl2-dev php5-gd openssl libssh2-php libphp-jpgraph

Locate The PHP Extension Directory

The directory, if it did not exist before, it does now that you have added php-tidy. So execute this code to find it:

sudo find / -iname tidy.so

Now you know where your extension_dir is.

Update Pear Communication Protocols

sudo pecl channel-update pear.php.net
sudo pear channel-update pear.php.net

Install The Required Modules

Move to where we want to be and install the first package:

cd /build/buildd/php5-5.3.2/pear-build-download
sudo pecl install Fileinfo
sudo tar -xvf ./Fileinfo-1.0.4.tgz
cd Fileinfo-1.0.4
sudo phpize fileinfo
sudo ./configure
sudo make

Now that the module exisist lets get it to the right spot and do some clean up:

cd ./modules
sudo cp ./fileinfo.so /usr/lib/php5/20090626+lfs/
cd ../..
sudo rm -R ./*

This one is a pain as well:

sudo pecl install channel://pecl.php.net/sasl-0.1.0
sudo tar -xvf ./sasl-0.1.0.tgz
cd ./sasl-0.1.0
sudo phpize sasl
sudo ./configure
sudo make
cd ./modules
sudo cp ./sasl.so /usr/lib/php5/20090626+lfs/
cd ../..
sudo rm -R ./*

OK, those two were the hardest. Now the easy stuff begins.

sudo pecl install ssh2
sudo pecl install channel://pear.php.net/idn-0.2.0
sudo pecl install imagick
sudo pecl install lzf
sudo pecl install memcache
sudo pear install --alldeps channel://pear.php.net/XML_Serializer-0.20.2
sudo pear install --alldeps channel://pear.php.net/SOAP-0.12.0
sudo pear install --alldeps channel://pear.php.net/Date_Holidays-0.21.5
sudo pear install --alldeps channel://pear.php.net/Date_Holidays_UNO-0.1.3
sudo pear install --alldeps channel://pear.php.net/Date_Holidays_USA-0.1.1
sudo pear install --alldeps channel://pear.php.net/Numbers_Words-0.16.2
sudo pear install --alldeps channel://pear.php.net/Text_CAPTCHA-0.4.3

Horde Components Installation

sudo pear channel-discover pear.horde.org
sudo pear install horde/Horde_role

This next step asks you for your path to the web site's root (where your index.php will go). Enter the full path on the file system to this point BUT DO NOT USE A TRAILING SLASH

sudo pear run-scripts horde/Horde_role
sudo touch ./output && sudo chmod 666 ./output"
sudo pear install -a -B horde/webmail>./output

Editing Your php.ini File

now open your php.ini file with an editor

sudo nano -w /etc/php5/apache2/php.ini

press ctrl-w to access nano's search function and type

;extension_dir

and press ENTER
alter this line so it reads (your extension_dir you found earlier):

extension_dir = "/usr/lib/php5/20090626+lfs/"

Adding Ubuntuish Config Files

This part could all be combined into the php.ini editing, but in keeping with the spirit and structure of Ubuntu, I recommend doing it this way.
/!\If any of the files you touch here already exist, do not touch them.

cd /etc/php5/apache2/conf.d
sudo touch ./idn.ini ./imagick.ini ./fileinfo.ini ./lzf.ini ./tidy.ini ./sasl.ini ./memcache.ini ./gd.ini

Now edit each of these files you just created and add one line:

extension=    <--one per file, according to file name idn.so, imagick.so, fileinfo.so
                                                      lzf.so tidy.so sasl.so
                                                      memcache.so gd.so

Apache2 Configuration Directives

Horde Webmail requires a few certain directives to be in place in the apache2 configuration files. I would recomend you add these directives to your website specific file in /etc/apache2/sites-available/ directory.
Obviously I have no way of knowing what you have named this file, or how you have configured your server, so I will just call the file apache.conf and simply show the directives you need to add in their proper context.

sudo nano -w /etc/apache2/sites-available/apache.conf
AcceptPathInfo On
AddType application/x-httpd-php .php
DirectoryIndex index.php

Note that these could go in an .htacess file in your web document root as well.

Configuring The Installation

The last step is configuration. This assumes your database is set up and has a user prepared for this application, and your mailserver is ready to go as well.

sudo webmail-install

Last But Not Least

sudo service apache2 restart
php -v  <--watch output for errors

See Also

A see also section can be used to point users towards other trusted Ubuntu resources. For example, if a page exists in the official documentation on http://help.ubuntu.com, you can link to such a page. This section is optional.

Horde4 Mail And Groupware Server (last edited 2012-02-17 21:07:39 by will-giddens)