Personal tools
You are here: Home GNU / Linux Debian 4.0 Etch Install Horde Groupware Webmail Edition on Debian 4.0 Etch
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Install Horde Groupware Webmail Edition on Debian 4.0 Etch

by Pierre-Yves Landuré last modified 2012-12-19 20:59

The Horde project aim to create a free groupware. It is coded in PHP and provide one of the best WebMail available for now. This article help you to install it on Debian 4.0 Etch.

Install

The Horde project provide a very complete groupware, divided in many software projects. These softwares are available either alone, either in the bundle  Horde Groupware Webmail Edition. This guide help you to install this bundle. First, we install the needed software packages :

/usr/bin/apt-get install libapache2-mod-php5 php5-gd php5-mysql php5-mcrypt php5-imap php5-tidy php5-cli php-pear

In order for Horde to work flawlessly, we rise the memory limit of the Apache 2 PHP module :

/bin/sed -i -e 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini

You can also enhance Horde performances by installing memcached :

apt-get install memcached php5-memcache

We upgrade the PEAR install :

/usr/bin/pear upgrade-all

We now install PEAR and PECL extensions recommended by Horde. First, we install the packages needed in order to build the extensions :

/usr/bin/apt-get install libmagic-dev libgeoip-dev make php5-dev

And we build and install the PECL extensions :

  • fileinfo :
    This extension allow to enhance attached files management.
    /usr/bin/pecl install fileinfo
    /bin/echo "extension=fileinfo.so" | /usr/bin/tee /etc/php5/conf.d/fileinfo.ini
  • lzf :
    This extension allow to reduce the size of sessions (and so the server memory usage).
    /usr/bin/pecl install lzf
    /bin/echo "extension=lzf.so" | /usr/bin/tee /etc/php5/conf.d/lzf.ini
  • geoip :
    This extension enhance the geolocation of IP addresses. But, due to version incompatibility, it is not simple to install it on Etch.
  • idn :
    This extension allow to use internationalized domain names. But, for now on, this extension is still Beta.

We set the last version number of Horde Groupware Webmail Edition that we are willing to install :

VERSION=1.0.3

Note : To install the 1.1 RC version of Horde, with AJAX and SyncML support :

VERSION=1.1-rc1

We download Horde Groupware Webmail Edition :

/usr/bin/wget http://ftp.horde.org/pub/horde-webmail/horde-webmail-$VERSION.tar.gz \
--output-document=/tmp/horde-webmail-$VERSION.tar.gz

We untar the downloaded file :

/bin/tar --directory /var/www -xzf /tmp/horde-webmail-$VERSION.tar.gz

We rename the created folder :

/bin/mv /var/www/horde-webmail-$VERSION /var/www/horde-webmail

We can now configure this software.

Horde configuration

Note : Horde need a database. If you want you can install a MySQL server, or create a database on such a server by following my article MySQL for Debian 4.0 Etch.

The Horde configuration is quite complex because of the bunch of parameters. I encourage you to read the Horde documentation in order for your system to be configured exactly to you needs. This guide only help you to create a working but basic Horde configuration. In order to do this, we use the script provided by Horde :

/usr/bin/php /var/www/horde-webmail/scripts/setup.php

Answer to the questions of this script.

Note : If your IMAP server is not on the server where is installed Horde, you need to edit the IMP configuration :

/usr/bin/vim /var/www/horde-webmail/imp/config/servers.php

Once the configuration done, you can check that nothing is missing by visiting :

Note : Don't worry about the memory limit error. 128 MB should be sufficient.

Default email domain

We now set the contact email used when a user encounter problems. We also set the default domain for users' email adresses, when Horde can not detect it :

/bin/sed -i -e "s/^\(.*problems.*email.*=\).*;/\1 'contact@votre-domaine.com';/" /var/www/horde-webmail/config/conf.php
/bin/sed -i -e "s/^\(.*problems.*maildomain.*=\).*;/\1 'votre-domaine.com';/" /var/www/horde-webmail/config/conf.php

Log file

We change the location of Horde log file :

touch /var/log/horde.log
/bin/chown www-data:www-data /var/log/horde.log
/bin/chmod 0640 /var/log/horde.log
/bin/sed -i -e 's/\/tmp\/horde\.log/\/var\/log\/horde\.log/' /var/www/horde-webmail/config/conf.php

And we setup the log rotation for this log file :

/bin/cp /var/www/horde-webmail/scripts/horde.logrotate /etc/logrotate.d/horde

Memory caching

First, be sure that the memory cache is installed :

apt-get install memcached php5-memcache
/etc/init.d/apache2 restart

We enable the memory cache support in Horde :

/bin/sed -i -e 's/^\(.*memcache.*enabled.*=\).*;/\1 true;/' /var/www/horde-webmail/config/conf.php

And we set it up :

/bin/sed -i -e "/^\(.*conf.*memcache.*enabled.*=\).*/i\
\$conf['memcache']['hostspec'] = array('localhost');\n\
\$conf['memcache']['port'] = array('11211');\n\
\$conf['memcache']['weight'] = array();\n\
\$conf['memcache']['persistent'] = false;\n\
\$conf['memcache']['compression'] = false;\n\
\$conf['memcache']['large_items'] = true;" /var/www/horde-webmail/config/conf.php

Cache location

We create a secure cache folder for Horde :

/bin/mkdir /var/cache/horde
/bin/chown www-data:root /var/cache/horde
/bin/chmod 0700 /var/cache/horde

We set up Horde so that it use this folder for its cache files :

/bin/sed -i -e "/^\(.*conf.*umask.*=\).*/a\
\$conf['tmpdir'] = '/var/cache/horde';" /var/www/horde-webmail/config/conf.php

We configure the regular clean up of generated cache files :

/bin/cp /var/www/horde-webmail/scripts/temp-cleanup.cron /etc/cron.daily/horde-temp-cleanup
/bin/chmod +x /etc/cron.daily/horde-temp-cleanup
/bin/sed -i -e 's/^\(TMP_DIR=\).*/\1\/var\/cache\/horde/' /etc/cron.daily/horde-temp-cleanup

Sending alert emails

We now configure Horde to send alert emails :

/bin/echo "# /etc/cron.d/horde : crontab fragment for horde
# Horde Alarms
*/5 * * * * /usr/bin/php /var/www/horde-webmail/scripts/alarms.php" \
| /usr/bin/tee /etc/cron.d/horde

Sessions monitoring tool

If you want to monitor the Horde sessions, run the following command line :

/bin/chown www-data /var/lib/php5

Warning : This can be a security risk, so I don't recommend this.

Attached files management

If you want to be able to preview your attached files in Horde without download them, here is the command line allowing you to install needed softwares :

/usr/bin/apt-get install unrtf libwpd-tools xlhtml source-highlight ppthtml rpm wv enscript

Once this done, we correct the paths to theses softwares in Horde configuration :

sed -i -e 's/\/usr\/local\/bin\/xlhtml/\/usr\/bin\/xlhtml/' \
-e 's/\/usr\/local\/bin\/ppthtml/\/usr\/bin\/ppthtml/' \
/var/www/horde-webmail/config/mime_drivers.php

And we enable the use of the installed tools in Horde :

sed -i -e "s/\/\/ \('deb'\)/\1/g" \
-e "s/\/\/ \('enscript'\)/\1/g" \
-e "s/\/\/ \('msword'\)/\1/g" \
-e "s/\/\/ \('msexcel'\)/\1/g" \
-e "s/\/\/ \('mspowerpoint'\)/\1/g" \
-e "s/\/\/ \('rpm'\)/\1/g" \
-e "s/\/\/ \('rtf'\)/\1/g" \
-e "s/\/\/ \('srchighlite'\)/\1/g" \
-e "s/\/\/ \('webcpp'\)/\1/g" \
-e "s/\/\/ \('wordperfect'\)/\1/g" \
/var/www/horde-webmail/config/mime_drivers.php

Now, we tell Horde where to find the MIME database :

/bin/sed -i -e "/^\(.*conf.*sessionhandler.*type.*=\).*/a\
\$conf['mime']['magic_db'] = '/usr/share/file/magic';" /var/www/horde-webmail/config/conf.php

IMP configuration

In order to enhance the mail reading experience, we change the default IMP configuration :

Inline HTML mails

By default, you need to download the mails written in HTML. This is not very easy. These command lines modify this behaviour :

/bin/sed -i -e '/.*mime_drivers.*imp.*html.*=.*array.*/{n;d}' /var/www/horde-webmail/imp/config/mime_drivers.php
/bin/sed -i -e "/.*mime_drivers.*imp.*html.*=.*array.*/a\
'inline' => true," /var/www/horde-webmail/imp/config/mime_drivers.php

Adapting to Mozilla Thunderbird defaults

If your users use Mozilla Thunderbird, you should change the Horde default folders to the one used by Mozilla Thunderbird :

  • Sent mails folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'sent-mail',/\1 'Sent',/" /var/www/horde-webmail/imp/config/prefs.php
  • Drafts folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'drafts',/\1 'Drafts',/" /var/www/horde-webmail/imp/config/prefs.php
  • Trash folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'trash',/\1 'Trash',/" /var/www/horde-webmail/imp/config/prefs.php
  • Junk mail folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'Spam',/\1 'Junk',/" /var/www/horde-webmail/imp/config/prefs.php

Adapting to Outlook defaults

The following command lines are for a french Outlook, but you can change them to fit your needs :

  • Sent mails folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'sent-mail',/\1 '&AMk-l&AOk-ments envoy&AOk-s',/" /var/www/horde-webmail/imp/config/prefs.php
  • Drafts folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'drafts',/\1 'Brouillons',/" /var/www/horde-webmail/imp/config/prefs.php
  • Trash folder :
    /bin/sed -i -e "s/^\(.*'value' =>\).*'trash',/\1 '&AMk-l&AOk-ments supprim&AOk-s',/" /var/www/horde-webmail/imp/config/prefs.php

Attached files preview

In order to make available the attached files preview, run this command line :

/bin/sed -i -e 's/^\(.*mailbox.*show_preview.*=\).*;/\1 true;/' /var/www/horde-webmail/imp/config/conf.php

Enabling the cache

In order to make the messages display faster, you need to enable the use of cache in IMP. To do this, run the command line :

/bin/sed -i -e 's/^\(.*mboxcache.*use_mboxcache.*=\).*;/\1 true;/' /var/www/horde-webmail/imp/config/conf.php

And configure the cache :

/bin/sed -i -e "/^\(.*conf.*mboxcache.*use_mboxcache.*=\).*/i\
\$conf['mboxcache']['use_compress'] = false;\n\
\$conf['mboxcache']['preview_size'] = 1000;\n\
\$conf['mboxcache']['lifetime'] = 2592000;" /var/www/horde-webmail/imp/config/conf.php

This command lines will do the same for messages list :

/bin/sed -i -e 's/^\(.*mlistcache.*use_mlistcache.*=\).*;/\1 true;/' /var/www/horde-webmail/imp/config/conf.php
/bin/sed -i -e "/^\(.*conf.*mlistcache.*use_mlistcache.*=\).*/i\
\$conf['mlistcache']['lifetime'] = 604800;" /var/www/horde-webmail/imp/config/conf.php

Priority and attached files presence display in the messages list

In order to display mail priority and attached files presence in the messages list, use the following command line (the cache should be enabled) :

/bin/sed -i -e 's/^\(.*mailbox.*show_attachments.*=\).*;/\1 true;/' \
-e 's/^\(.*mailbox.*show_xpriority.*=\).*;/\1 true;/' \
/var/www/horde-webmail/imp/config/conf.php

CSS and Javascript Cache

In order to accelerate pages loading, it is possible to lighten Javascript and CSS files. This is the goal of this configuration :

  • For Javascript caching :
    /bin/sed -i -e 's/^\(.*server.*cachejs.*=\).*;/\1 true;/' /var/www/horde-webmail/imp/config/conf.php
    /bin/sed -i -e "/^\(.*conf.*server.*cachejs.*=\).*/i\
    \$conf['server']['cachejsparams']['timeout'] = 86400;\n\
    \$conf['server']['cachejsparams']['mtime'] = false;" /var/www/horde-webmail/imp/config/conf.php
  • For CSS caching :
    /bin/sed -i -e 's/^\(.*server.*cachecss.*=\).*;/\1 true;/' /var/www/horde-webmail/imp/config/conf.php
    /bin/sed -i -e "/^\(.*conf.*server.*cachecss.*=\).*/i\
    \$conf['server']['cachecssparams']['timeout'] = 86400;\n\
    \$conf['server']['cachecssparams']['mtime'] = false;" /var/www/horde-webmail/imp/config/conf.php

Note : If DIMP is present, you can activate the Javascript and CSS caching for this GUI :

  • For Javascript caching :
    /bin/sed -i -e 's/^\(.*server.*cachejs.*=\).*;/\1 true;/' /var/www/horde-webmail/dimp/config/conf.php
    /bin/sed -i -e "/^\(.*conf.*server.*cachejs.*=\).*/i\
    \$conf['server']['cachejsparams']['timeout'] = 86400;\n\
    \$conf['server']['cachejsparams']['mtime'] = false;" /var/www/horde-webmail/dimp/config/conf.php
  • For CSS caching :
    /bin/sed -i -e 's/^\(.*server.*cachecss.*=\).*;/\1 true;/' /var/www/horde-webmail/dimp/config/conf.php
    /bin/sed -i -e "/^\(.*conf.*server.*cachecss.*=\).*/i\
    \$conf['server']['cachecssparams']['timeout'] = 86400;\n\
    \$conf['server']['cachecssparams']['mtime'] = false;" /var/www/horde-webmail/dimp/config/conf.php

Enhancements

You will find in this section various little things that, without being mandatory, will enhance greatly your Horde installation.

Fortunes

In order to get a fun message each time you log in, install the needed software :

/usr/bin/apt-get install fortunes

And configure Horde to use it :

/bin/sed -i -e "/^\(.*conf.*portal.*fixed_blocks.*=\).*/a\
\$conf['fortune']['exec_path'] = '/usr/games/fortune';" /var/www/horde-webmail/config/conf.php

Spell checking

In order to check the spelling of the mails you write, install aSpell :

/usr/bin/apt-get install aspell-en aspell-fr

And configure IMP to use it :

/bin/sed -i \
-e "s/^\(.*spell.*driver.*=\).*;/\1 'aspell';/" \
-e "/^\(.*conf.*spell.*driver.*=\).*/i\
\$conf['spell']['path'] = '/usr/bin/aspell';" /var/www/horde-webmail/imp/config/conf.php

Encryption

Il you want to encrypt your mails using GnuPG, install GnuPG :

/usr/bin/apt-get install gnupg

And configure IMP to user it :

/bin/sed -i -e "/^\(.*conf.*utils.*gnupg_keyserver.*=\).*/i\
\$conf['utils']['gnupg'] = '/usr/bin/gpg';" /var/www/horde-webmail/imp/config/conf.php

We also configure Mnemo to use it :

/bin/sed -i -e "/^\(.*conf.*menu.*print.*=\).*/i\
\$conf['utils']['gnupg'] = '/usr/bin/gpg';" /var/www/horde-webmail/mnemo/config/conf.php

OpenSSL

I have not understand the goal of this, but if this is of use to you, here is how to enable it. Install OpenSSL :

/usr/bin/apt-get install openssl ca-certificates

And configure IMP to use it :

/bin/sed -i -e "/^\(.*conf.*utils.*gnupg_timeout.*=\).*/a\
\$conf['utils']['openssl_cafile'] = '/etc/ssl/certs';\n\
\$conf['utils']['openssl_binary'] = '/usr/bin/openssl';" /var/www/horde-webmail/imp/config/conf.php

More

Here is a list of things i don't talk about in this article, but that you can find in Horde configuration interface :

  • Meteo from weather.com
  • IP addresses geolocation
  • Google Search API
  • Google Maps API

I encourage you to explore Horde configuration if these tools are of use to you.

Setup with Cyrus Imap

If you have a Cyrus Imap server, you probably want Horde to configure your mails filters in Sieve. In order to do this, we need to install one more PEAR package :

/usr/bin/pear install Net_Sieve

Once this done, you need to edit the Sieve backend of Ingo :

/usr/bin/vim /var/www/horde-webmail/ingo/config/backends.php

You will find in this file a backend named 'sieve'. You need to change the values of 'preferred' and 'hostspec' to fit your needs. Then delete or comment the other backends to allow Ingo to use Sieve as filtering engine.

You also need to edit the 'hordeauth' value, it need to be changed from "true" to "'full'" :

 'hordeauth' => 'full',

Users black list

If you want to be able to restrein some users to use Horde, you can do this by using the "preauthenticate" hook. In order to activate this functionnality, you need to enable the hook:
/bin/sed -i -e "s/^\(.*hooks.*preauthenticate.*=\).*;/\1 true;/" /var/www/horde-webmail/config/conf.php
Now, add a configuration parameter for your black list :
/bin/sed -i -e "/^\(.*auth.*driver.*=\).*/a\
\$conf['auth']['blacklist'] = array( /* 'my_blacklisted_login', */ );" /var/www/horde-webmail/config/conf.php

Then, add your custom hook function to the hooks.php file :

echo "
// Here is an _horde_hook_preauthenticate that allow you to black list logins.
if (! function_exists('_horde_hook_preauthenticate')) {
function _horde_hook_preauthenticate(\$userID, \$credential, \$realm)
{
return ! in_array(\$userID, \$GLOBALS['conf']['auth']['blacklist']);
}
}" | /usr/bin/tee -a /var/www/horde-webmail/config/hooks.php

From now on, you can add a login to the black list with the following command lines. First, setup the login to blacklist :

LOGIN=blacklisted_user

And run this command line to add it to the black list configuration :

/bin/sed -i -e "s/^\(.*auth.*blacklist.*=.*\));.*/\1 '$LOGIN',);/" /var/www/horde-webmail/config/conf.php

Use behind a proxy serveur

If you want to use Apache 2 or Squid as a proxy before your Horde server, here are the change to make (for a proxy server using HTTPS and with Horde as /) :

  • In the file /var/www/horde-webmail/config/conf.php :
    $conf['use_ssl'] = 1;
    $conf['server']['name'] = 'imp.votre-domaine.fr';
    $conf['server']['port'] = 443;
    ...
    $conf['cookie']['domain'] = $conf['server']['name'];
    $conf['cookie']['path'] = '/';
  • In the file /var/www/horde-webmail/config/registry.php :
        'webroot' => '' /* _detect_webroot() */,

Security enhancement

Warning : run this step only when your Horde is perfectly configured, but before opening it to the Internet users.

In order to harden Horde, we change configuration files permissions :

/usr/bin/find /var/www/horde-webmail -type f -wholename "*config/*" | /usr/bin/xargs /bin/chown -R root:www-data
/usr/bin/find /var/www/horde-webmail -type f -wholename "*config/*" | /usr/bin/xargs /bin/chmod 0440

We disable the test.php files :

/usr/bin/find /var/www/horde-webmail -type f -name "test.php" | /usr/bin/xargs /bin/chmod a-rwx

We allow access to the configuration scripts to the root user only :

/usr/bin/find /var/www/horde-webmail -type d -name "scripts" | /usr/bin/xargs /bin/chown -R root:root
/usr/bin/find /var/www/horde-webmail -type d -name "scripts" | /usr/bin/xargs /bin/chmod -R go-rwx

And to harden even more our Horde install, we disable the write permission on all of Horde source :

/bin/chmod -R ugo-w /var/www/horde-webmail

We disable the display of PHP source code to users when errors occurs :

/bin/echo "# Secure PHP for horde
expose_php = Off
display_errors = Off
log_errors = On
register_globals = Off
" | tee /etc/php5/conf.d/horde.ini

And we restart Apache 2 to enable this configuration :

/etc/init.d/apache2 restart

I also encourage you to use Horde through a HTTPS connection in order to your emails account passwords no to be readable on the network.

Thanks

Thanks!

Posted by gimili at 2008-02-12 03:15
This was VERY helpful! **Thanks!** I use horde stable. I would like to use Dimp but I am worried about running into trouble. Any comments about not using the stable versions.

i do use dimp

Posted by lwolf at 2008-02-12 06:25
and it is quite stable. I think that some functionnalities may be a little buggy, but overall, the RC1 is ready for daily use. The main thing work quite well and is really impressive.

and thanx for your comment, i was desesperately waiting for a good feed back on this article :D

great job!

Posted by california at 2008-02-19 23:48
Great article! I have used Horde for many years with much success. I just got a new server and used your guide to set up a fresh horde install. Thanks for saving me a lot of time and brain. Great sed usage too! Cheers from California.

Great job .. some help

Posted by johncuba at 2008-02-26 23:09
Hi Pierre great job ... we are very happy and pleasure with your help ...

We need define more than 1 server ... most of are pop3 servers .. then we define in /imp/config/servers.php but in the first page no combox is show .. some help about please ?


can't really help

Posted by Pierre-Yves Landuré at 2008-02-27 07:36
I'm not a Horde "specialist". All I can say to you is that you should really consider using Imap.

For help on Horde, you could try the Wiki : http://wiki.horde.org/ (although i take a look and found nothing on your problem, but you should try).

I encourage you to go to the #horde channel of Freenode IRC network. I've found a great deal of help on this channel.

I'm sorry i could not help you more, it may not apparent in this document, but i've setted up Horde for my personnal usage (i'm the only one to use it to connect to my personal Imap server) (yep, i've setted up such a complex network for my personal use :D)

Good luck with your problem

Thanks, and one suggestion

Posted by Saint Aardvark at 2008-04-15 23:14
Thanks very much for this HOWTO. One problem I came across is that, after login, the browser just sat there waiting for a response from the server. Meanwhile, the webserver CPU usage just kept going up and up, and on the mail server (another machine), the IMAP process was steadily going through every single file in my home directory.

The solution was simple: the IMAP server uses ~/.mailboxlist to keep track of what mailboxes are in use. To tell IMP to use this, I edited imp/config/prefs.php, searched for $_prefs['subscribe'], and set 'value' to 1.

Couldn't have done it without your help

Posted by Ryan - Melbourne Aust. at 2008-07-09 22:49
Brilliant. Thank you. You're a rock star.

configuring group shares

Posted by James at 2008-07-23 02:19
This is a great article for getting it installed. I'm having problems setting up group shares. I'm using postfix and dovecot. I would appreciate if someone could point me in the right direction to find the help I need to settup group shares. Thanks for your help

Great guide

Posted by Juan at 2008-08-03 19:15
Hi!

I have taken your guide as base for my manual (http://wiki.nutum.es/linux/samba/samba_ldap_mds/inicio), in spanish. Great work!

Regards.

Could not view message

Posted by Saki at 2008-08-21 11:51
Thanks for ur great work. I was seeking horde solution for a ling time. However I am facing two problem. 1. I can not view message when I click on message it shows only a blank page. 2. What I have to do to provide user interface for password change?

Regards,
saki

well,

Posted by lwolf at 2008-08-21 23:49
for the password change problem, it is very dependant on the server software and configuration. So i can not help you.

One the view message problem, i can only think of a javascript or referer blocking. But it can also be due to a php bug. Take a look at your web server error log. I'm not of any help, but well, it is also server software dependant.

Good luck

Error msg at

Posted by Tjopot at 2008-09-09 21:52
Got stuck at "Horde configuration: /usr/bin/php /var/www/horde-webmail/scripts/setup.php".

I have already created a 'horde_db' with user 'horde_usr' and password 'horde_pwd'. Running the script I get the following error message at the end of the setup script:
"Warning: array_merge(): Argument #2 is not an array in /var/www/horde-webmail/lib/Horde/Perms/sql.php on line 405

A fatal error has occurred

DB Error: not found

Details have been logged for the administrator."

Any suggestions?
Where is the log placed?

hum, probably a misconfiguration

Posted by lwolf at 2008-09-10 05:47
I'm astonished that you are stuck at setup.php step. It is the only one that is not from be, but from horde developers.
You can find the log horde in /tmp/horde.log by default. Later, this howto move this file to /var/log.

I think you should check you database configuration.

Good luck

User/Pwd credentials at the Start Page?

Posted by Tjopot at 2008-09-10 13:28
started from scratch, coming all the way to the 'Welcome to Horde' login page. Not sure which user/pwd info to enter, I'm not allowed to log in....!

Bad day...

Posted by Tjopot at 2008-09-10 13:46
duh, figured it out. Having a bad day... :-)

Same error

Posted by Carlo at 2008-09-16 17:30
I got the same error msg, even I'm using 'root' as user...
Any suggestion?

use your imap users

Posted by Lone Wolf at 2008-09-16 18:06
The login to use is simply your imap server logins.

Good luck

Error msg at setup.php

Posted by Phatz at 2008-11-24 11:56
Hi guys,

I'm also stuck at the setup.php script with the same error:

"Warning: array_merge(): Argument #2 is not an array in /var/www/horde-webmail/lib/Horde/Perms/sql.php on line 405
A fatal error has occurred
DB Error: not found
Details have been logged for the administrator.

The horde.log is not created and I have no idea what is going on.
I am running it on the latest Ubuntu LTS server and I'm trying to get it to use a mysql database running on my Ubuntu mail server running Postfix and Dovecot.

If anyone has any pointers please please please let me know.

Error msg at setup.php fixed

Posted by wessel at 2009-03-20 12:09
Hi

I downloaded horde 1.2.2 and also had a

"Warning: array_merge(): Argument #2 is not an array in /data/www/intranet/web/horde-webmail-1.2.2/lib/Horde/Perms/sql.php on line 410"

according to php docs: "The behavior of array_merge() was modified in PHP 5. Unlike PHP 4, array_merge() now only accepts parameters of type array. However, you can use typecasting to merge other types. See the example below for details. "

So I casted the second parameter which fixed the problem for me.

Dunno why the $_params['read'] is not an array in my case. Or all the other users without problems using php4?


"Warning: array_merge(): Argument #2 is not an array in

Posted by Stuart at 2009-04-30 15:17
Correct - I took your advice and modified sql.php the following way and it worked(the installation continued):
Modified line 410 to : $params = array_merge((array)$_params, (array)$_params['read']);

Thank you!

Posted by Roberto at 2008-10-02 14:30
Great howto, it helped me a lot.

BTW, you've inspired me to setup my own plone/blog/wordpress site to drop my experience.

Greetings,


html mails not displaying

Posted by hubutz at 2008-10-12 17:20
Hey!

Your tutorial helped me a lot to get horde webmail 1.2 installed, BUT i don't get html mails shown, i can not see there contents. :/
Any idea?

Cheers,
hubutz

html mails

Posted by lwolf at 2008-10-13 04:49
By default, Horde does not display HTML mails inline, in Horde 1.1, this was controlled by this setting in /var/www/horde-webmail/imp/config/mime_drivers.php

mime_drivers -> imp -> html -> 'inline' => true

(aka, add inline = true value in the mime_drivers->imp->html array).

I don't know if the setting is the same for horde 1.2.

Good luck

Awesome

Posted by Agustinho at 2009-02-06 02:51
Thank you so much... I have spent many days on setting up a box with horde+debian and you have ligten the path! :)

But, can you please tell the directions to Outlook in English or Brazilian?

Best Regards!

OpenSSL

Posted by Flo at 2009-03-26 02:35
... regarding the authors comment: I have not understand the goal of this, but if this is of use to you, here is how to enable it.

You need to enable OpenSSL in order to get S/MIME support working within the Horde Groupware. S/MIME signatures are currently the most common way to sign outgoing MS Outlook E-Mails.

Have fun and thanks for this great installation manual for Debian! You can use it also for the current Debian Lenny. In Lenny you can use the precompiled Debian .deb files for pear geoip, fileinfo and idn. There is no longer need to compile that on your own...

-Florian

mille mercy Pierre-Yves

Posted by Uwe at 2009-07-14 22:40
Je tiens à remercier pour vos efforts (excuse pour la mauvaise traduction de Google)

This Howto is the best.

I have some littel Problems.
Does anyone know a good Forum for Horde Support ?

Support ?

Posted by Lone Wolf at 2009-07-15 05:11
Hi,

thank you :).

For support, i don't know of a forum, but there is a irc channel, and a mailing list. More information can be found here :

http://www.horde.org/support.php

Good luck.

Does anyone know, how to setup DIMP als Login Default?

Posted by Andre at 2010-03-12 15:47
Hello,

Does anyone know, how to setup DIMP als Login Default in current Horde Webmail Edition?

Thank you

Andre

DIMP as Login Default

Posted by Cédric at 2010-08-02 17:52
It's probably a little late, but yes !
I've done a fresh install some days ago and have to do the same.

You have to modify the imp/login.php file on line 258 :

Replace :
$view_cookie = isset($_COOKIE['default_imp_view'])
? $_COOKIE['default_imp_view']
: ($browser->isMobile() && isset($apps['mimp']) ? 'mimp' : 'imp');
By :
$view_cookie = isset($_COOKIE['default_imp_view'])
? $_COOKIE['default_imp_view']
: ($browser->isMobile() && isset($apps['mimp']) ? 'mimp' : (isset($apps['dimp']) ? 'dimp' : 'imp'));

Then, few lines lower, find the following code and cut it :
$views[] = array('sel' => $view_cookie == 'imp',
'val' => 'imp', 'name' => _("Traditional"));
Then paste the cut lines between :
if (isset($apps['dimp'])) {
$views[] = array('sel' => $view_cookie == 'dimp',
'val' => 'dimp', 'name' => _("Dynamic"));
}
And :
if (isset($apps['mimp'])) {
$views[] = array('sel' => $view_cookie == 'mimp',
'val' => 'mimp', 'name' => _("Minimalist"));
}
Save and refresh the Login page in your browser. Done !

Hope it can be usefull :-)

Running in 64 bit mode??

Posted by Lars at 2010-10-05 11:52
Hi there
I have used your recipe manny times to setup Horde Groupware, but I need to know if I can use you recipe to setup a 64 bit version? I'm having problems with the underlying Imap server only allowing 2 GB of user data for each user. My plan is to setup a Debian 64 bit with PostFix and Horde GroupWare

Thanx in advance

64bit

Posted by Lone Wolf at 2010-10-05 12:51
I believe the same guide applies. I've written it on a 64bit debian.

Horde on Debian Edge (Ubuntu 10.10)

Posted by Kurt at 2010-11-16 20:59
During the installation process:
And we build and install the PECL extensions :

* fileinfo :
This extension allow to enhance attached files management.

/usr/bin/pecl install fileinfo
/bin/echo "extension=fileinfo.so" | /usr/bin/tee /etc/php5/conf.d/fileinfo.ini

* lzf :
This extension allow to reduce the size of sessions (and so the server memory usage).

/usr/bin/pecl install lzf
/bin/echo "extension=lzf.so" | /usr/bin/tee /etc/php5/conf.d/lzf.ini

I received permission denied when running the following lines:

sudo /bin/echo "extension=fileinfo.so" | /usr/bin/tee /etc/php5/conf.d/fileinfo.ini

sudo /bin/echo "extension=lzf.so" | /usr/bin/tee /etc/php5/conf.d/lzf.ini

How do I correct this?

tee and sudo

Posted by Pierre-Yves Landuré at 2010-11-17 10:30
Hi,

simply use :

/bin/echo "extension=fileinfo.so" | sudo /usr/bin/tee /etc/php5/conf.d/fileinfo.ini
/bin/echo "extension=lzf.so" | sudo /usr/bin/tee /etc/php5/conf.d/lzf.ini

Good luck

DB Problem

Posted by Kurt Mullen at 2010-11-17 17:52
Thanks for that last answer. I see why sudo has to go where it you put it. Still pretty new to linux. When I tried running the setup.php script I ran into some errors. Now I am not able to get to the database. I am getting the following error.

A fatal error has occurred
DB Error: connect failed
Details have been logged for the administrator.

The Mysql database was created "horde", with the user password horde/horde. I am able to log into the horde database using horde/horde.

How do I go about finding out what is causing the problem and correct it?

DB Problem

Posted by Kurt Mullen at 2010-11-17 17:53
Thanks for that last answer. I see why sudo has to go where it you put it. Still pretty new to linux. When I tried running the setup.php script I ran into some errors. Now I am not able to get to the database. I am getting the following error.

A fatal error has occurred
DB Error: connect failed
Details have been logged for the administrator.

The Mysql database was created "horde", with the user password horde/horde. I am able to log into the horde database using horde/horde.

How do I go about finding out what is causing the problem and correct it?

mysql connection

Posted by Pierre-Yves Landuré at 2010-11-17 20:37
I suggest you look at the apache 2 (or lighttpd) error log (in /var/log/apache2 or /var/log/lighttpd). I think the mysql connection error will be found here.

take also a look in horde logs (/var/log/horde.log)

Good luck

results

Posted by Kurt Mullen at 2010-11-17 23:13
This is what I'm finding:

[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Perms/sql.php on line 83
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Perms/sql.php on line 116
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Perms/sql.php on line 153
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Prefs.php on line 847
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/mnemo/lib/api.php on line 312
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/mnemo/lib/api.php on line 406
[Wed Nov 17 16:02:06 2010] [error] [client 192.168.15.230] PHP Warning: fopen(/var/log/horde.log): failed to open stream: Permission denied in /var/www/horde-webmail/pear/php/Log/file.php on line 216


permissions problems

Posted by Pierre-Yves Landuré at 2010-11-18 11:05
Hi,

this commands should solve the last error message and allow horde to update his own log file.

sudo touch /var/log/horde.log
sudo chown www-data:www-data /var/log/horde.log

Good luck

Still have problem

Posted by Kurt at 2010-11-18 17:40
Still getting the following:

A fatal error has occurred
DB Error: connect failed
Details have been logged for the administrator.


[Thu Nov 18 10:37:35 2010] [error] [client 192.168.15.230] File does not exist: /var/www/favicon.ico

where is the database server ?

Posted by Pierre-Yves Landuré at 2010-11-18 18:04
is your mysql server on the same machine / host as the horde install ? check the horde mysql configuration... it may be wrong.

Failed setup.php

Posted by Kurt Mullen at 2010-11-18 21:47
I deleted the horde database and the user horde. Then I went back and ran the setup.php script again.



Writing main configuration file
PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Block/Collection.php on line 146

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/horde-webmail/lib/Horde/Block/Collection.php on line 146

A fatal error has occurred

DB Error: connect failed

Details have been logged for the administrator.

database configuration problem

Posted by Pierre-Yves Landuré at 2010-11-19 10:07
You have a error in your database configuration. I don't know for sure the source of the error, but the result is that horde can not connect to the database.

i hope you'll find the error soon :)

Ubuntu 10.10

Posted by Jorg at 2010-12-01 16:02
Thanks for this great how-to.

I just want to confirm it also installs smoothly on Ubuntu 10.10.

Ubuntu 10.10 PHP Deprecated errors

Posted by Adrie at 2010-12-30 16:42
A nice hand-out. specially for a new install.
Horde works fine, but it keeps filling my log files with - PHP Deprecated errors - like:

[Thu Dec 30 15:13:43 2010] [error] [client 1.2.3.4] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/webmail/lib/Horde/MIME/Message.php on line 335, referer: http://amstelveen.bookum.no-ip.com/webmail/dimp/
[Thu Dec 30 15:13:43 2010] [error] [client 1.2.3.4] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/webmail/lib/Horde/MIME.php on line 279, referer: http://amstelveen.bookum.no-ip.com/webmail/dimp/
[Thu Dec 30 15:13:43 2010] [error] [client 1.2.3.4] PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/webmail/lib/Horde/MIME/Headers.php on line 501, referer: http://amstelveen.bookum.no-ip.com/webmail/dimp/

PHP5 5.3.3
MySQL 5.1.49-1ubuntu8.1

Look on several forums on the web to sort the issue.
changing &new -> new gave an MDB2 error and unpredictable application errors
added 'date.zone = Europe/Amsterdam in php.ini' in php.ini -> still same problem
declaration of 'error_reporting = E_ALL & ~E_DEPRECATED' in php.ini -> does not suppress Deprecated errors in /var/log/apache2/error.log

I also get error mails with same errors from the CRON job '/usr/bin/php /var/www/webmail/scripts/alarms.php'

Any suggestions what to do?

BTW: /usr/bin/pecl install fileinfo is not required with PHP5 5.3.3 anymore

Thnanks in advance
Adrie

return value by reference

Posted by Lone Wolf at 2010-12-31 10:18
The notice "Assigning the return value of new by reference is deprecated" is due to the return of a value (not a var) when a function is declared by reference.

return True -> warning

$return_value = True; return $return_value; -> OK

Perhaps : error_reporting = E_ALL & ~E_NOTICE will do the trick.

You can also simply ignore the error.

Good luck.

re: Return value by reference

Posted by Adrie at 2011-01-01 18:57
Thanks for the fast response Lone.

I tested error_reporting = E_ALL & ~E_NOTICE but unfortunately this does not stop the warnings.
All other things are running fine, so I leave it for the moment and ignore as you suggest the errors.

One other thing I discovered is that the Virtual Host in Apache must be configured properly to protect the Webmail subdirectory from being browsed from the outside world.
I added the following to the VirtualHost section:
<VirtualHost *:80>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /var/www/webmail>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Options
Order deny,allow
Allow from all
</Directory>
</VirtualHost>


Nothing after login

Posted by mlorente at 2011-06-23 14:06
Hi folks,

something strange is happening on my installation, and really do not know where to look. I have a server with postfix + courier-IMAP + apache + squirrelmail. I decided to change squirrelmail for horde, but trying to leave the rest of the system unchanged. After following this great horde install manual and configure /var/www/webmail/imp/config/servers.php to use my imap server, I can not login. Authentication seems to work, because if I put a user or password incorrect,the horde website tells me so, when they are correct, mail.log indicate that it is, but webmail asks for them again

Any idea?

Thnaks in advance

Gmail as IMAP server for horde

Posted by neo at 2011-08-17 09:07
Thank you for your article.
I installed horde successfully.
But I have problem with first time login. I've tried to use gmail as imap server, but with no success.
Is it possible configure horde to use gmail as imap server?
If yes, what should I do to do that?
Thanks in advance.

can you update the steps for the latest horde and ubuntu versions?

Posted by mv288 at 2011-12-11 12:19
Are you available to update the steps for the latest horde and ubuntu versions as a paid engagement?. Let me know I will reply with an email.

Mission

Posted by Lone Wolf at 2011-12-11 19:43
Yes i'm interested writing a updated install guide for you.

You can contact me at <pierre (dash) yves (dot) landure (at) biapy (dot) fr> or by using this site contact form.

Thank you
Pierre-Yves Landuré
aka. Lone Wolf

BlogBang
Navigation
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio