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.
<http://www.horde.org/apps/webmail/docs/INSTALL> - Developers Instructions
<http://www.linuxquestions.org/questions/linux-software-2/usr-bin-pecl-install-fileinfo-failed-for-horde-webmail-on-ubuntu-11-04-a-894821/> - Linux Questions Post About 64 bit.