How-To: Install Horde Webmail

OK, solved it by myself.

To add DOM XML support add this to the configure.php file:
--with-dom=/usr/lib \
--with-dom-exslt=/usr/lib \
--with-dom-xslt=/usr/lib

Probably if you run ./build php now it messages you to reinstall libxml. Trust me, your libxml (and libxslt) is FINE.
To solve this error install the following packages:
libxml-devel-1.8.17-9.2.i386.rpm
libxslt-devel-1.0.33-5.i386.rpm

After this, your XML DOM support is done, and works fine !
 
hi,

when i type ./build php

Code:
checking for IPv6 support... (cached) yes
checking for vprintf... (cached) yes
checking for alphasort... (cached) yes
checking for asctime_r... (cached) yes
checking for chroot... (cached) yes
checking for ctime_r... (cached) yes
checking for cuserid... (cached) yes
checking for crypt... (cached) no
checking for flock... (cached) yes
checking for ftok... (cached) yes
checking for funopen... (cached) no
checking for gai_strerror... (cached) yes
checking for gcvt... (cached) yes
checking for getlogin... (cached) yes
checking for getprotobyname... (cached) yes
checking for getprotobynumber... (cached) yes
checking for getservbyname... (cached) yes
checking for getservbyport... (cached) yes
checking for getrusage... (cached) yes
checking for gettimeofday... (cached) yes
checking for gmtime_r... (cached) yes
checking for isascii... (cached) yes
checking for link... (cached) yes
checking for localtime_r... (cached) yes
checking for lockf... (cached) yes
checking for lrand48... (cached) yes
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for mkstemp... (cached) yes
checking for mmap... (cached) yes
checking for nl_langinfo... (cached) yes
checking for perror... (cached) yes
checking for poll... (cached) yes
checking for putenv... (cached) yes
checking for realpath... (cached) yes
checking for random... (cached) yes
checking for rand_r... (cached) yes
checking for regcomp... (cached) yes
checking for res_search... (cached) yes
checking for scandir... (cached) yes
checking for setitimer... (cached) yes
checking for setlocale... (cached) yes
checking for localeconv... (cached) yes
checking for setsockopt... (cached) yes
checking for setvbuf... (cached) yes
checking for shutdown... (cached) yes
checking for sin... (cached) yes
checking for snprintf... (cached) yes
checking for srand48... (cached) yes
checking for srandom... (cached) yes
checking for statfs... (cached) yes
checking for statvfs... (cached) yes
checking for std_syslog... (cached) no
checking for strcasecmp... (cached) yes
checking for strcoll... (cached) yes
checking for strdup... (cached) yes
checking for strerror... (cached) yes
checking for strftime... (cached) yes
checking for strstr... (cached) yes
checking for strtok_r... (cached) yes
checking for symlink... (cached) yes
checking for tempnam... (cached) yes
checking for tzset... (cached) yes
checking for unsetenv... (cached) yes
checking for usleep... (cached) yes
checking for utime... (cached) yes
checking for vsnprintf... (cached) yes
checking for getaddrinfo... (cached) yes
checking for strlcat... (cached) no
checking for strlcpy... (cached) no
checking for getopt... (cached) yes
checking whether utime accepts a null argument... (cached) yes
checking for working alloca.h... (cached) yes
checking for alloca... (cached) yes
checking for declared timezone... (cached) yes
checking for type of reentrant time-related functions... (cached) POSIX
checking for readdir_r... (cached) yes
checking for type of readdir_r... (cached) POSIX

General settings
checking whether to include debugging symbols... no
checking layout of installed files... PHP
checking path to configuration file... DEFAULT
checking directory to be scanned for configuration files... DEFAULT
checking whether to enable safe mode by default... no
checking for safe mode exec dir... /usr/local/php/bin
checking whether to enable PHP's own SIGCHLD handler... no
checking whether to enable magic quotes by default... yes
checking whether to enable runpaths... yes
checking whether to explicitly link against libgcc... no
checking whether to enable short tags by default... yes
checking whether to enable dmalloc... no
checking whether to enable IPv6 support... yes
checking whether to enable versioning... no

Configuring extensions
checking for OpenSSL support... yes
checking for Kerberos support... yes
checking for krb5-config... (cached) /usr/kerberos/bin/krb5-config
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for ZLIB support... yes
checking if the location of ZLIB install directory is defined... /usr/local/lib
checking for gzgets in -lz... yes
checking whether to enable bc style precision math functions... yes
checking for BZip2 support... no
checking whether to enable calendar conversion support... yes
checking for cpdflib support... no
checking for CRACKlib support... no
checking whether to enable ctype functions... yes
checking for CURL support... yes
checking for CURL in default path... found in /usr/local
checking for cURL 7.9.8 or greater... libcurl 7.13.0
checking for curl_easy_perform in -lcurl... yes
checking for curl_version_info in -lcurl... yes
checking for cyrus imap support... no
checking for xDBM support... no
checking whether to enable DBA... no
checking for GDBM support... no
checking for NDBM support... no
checking for Berkeley DB4 support... no
checking for Berkeley DB3 support... no
checking for Berkeley DB2 support... no
checking for DBM support... no
checking for CDB support... no
checking for INI File support... no
checking for FlatFile support... no
checking whether to enable DBA interface... no
checking whether to enable dbase support... no
checking whether to enable dbx support... no
checking whether to enable direct I/O support... no
checking for DOM support... yes
checking for libxml version... >= 2.4.14
checking for DOM XSLT support... /usr/lib
checking for DOM EXSLT support... /usr/lib
checking for libxslt version... >= 1.0.18
checking for libexslt version... >= 1.0.3
checking whether to enable EXIF (metadata from images) support... no
checking for FrontBase SQL92 (fbsql) support... no
checking for FDF support... no
checking whether to enable the bundled filePro support... no
checking for FriBidi support... no
checking whether to enable FTP support... yes
checking for GD support... yes
checking for the location of libjpeg... /usr/local/lib
checking for the location of libpng... /usr/local/lib
checking for the location of libXpm... no
checking for FreeType 1.x support... no
checking for FreeType 2... no
checking for T1lib support... no
checking whether to enable truetype string function in GD... no
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for fabsf... yes
checking for floorf... yes
checking for jpeg_read_header in -ljpeg... yes
checking for png_write_image in -lpng... yes
If configure fails try --with-xpm-dir=<DIR>
If configure fails try --with-freetype-dir=<DIR>
checking for GNU gettext support... yes
checking for bindtextdomain in -lintl... no
checking for bindtextdomain in -lc... yes
checking for ngettext in -lc... yes
checking for dngettext in -lc... yes
checking for dcngettext in -lc... yes
checking for bind_textdomain_codeset in -lc... yes
checking for GNU MP support... no
checking for hwapi support... no
checking for Hyperwave support... no
checking for iconv support... no
checking for IMAP support... yes
checking for IMAP Kerberos support... yes
checking for IMAP SSL support... yes
checking for pam_start in -lpam... (cached) yes
checking for crypt in -lcrypt... (cached) yes
checking whether IMAP works... yes
checking for Informix support... no
checking for Ingres II support... no
checking for InterBase support... no
checking for IRCG support... no
checking for Java support... no
checking for LDAP support... no
checking whether to enable multibyte string support... no
checking whether to enable multibyte regex support... yes
checking for external libmbfl... no
checking for MCAL support... no
checking for mcrypt support... yes
checking for mcrypt_module_open in -lmcrypt... yes
checking for mcrypt_generic_deinit in -lmcrypt... yes
checking for MCVE support... no
checking OpenSSL dir for MCVE... no
checking for mhash support... yes
checking whether to include mime_magic support... no
checking for MING support... no
checking for mnoGoSearch support... no
checking for msession support... no
checking for mSQL support... no
checking for MSSQL support via FreeTDS... no
checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... no
checking size of char... (cached) 1
checking size of int... (cached) 4
checking size of long... (cached) 4
checking size of long long... (cached) 8
checking for size_t... (cached) yes
checking whether time.h and sys/time.h may both be included... (cached) yes
checking for uid_t in sys/types.h... (cached) yes
checking for type ulong... (cached) yes
checking for type uchar... (cached) no
checking for type uint... (cached) yes
checking for type ushort... (cached) yes
checking for int8... (cached) no
checking base type of last arg to accept... (cached) socklen_t
checking return type of qsort... (cached) void
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information.

*** There was an error while trying to configure php. Check the configure.php file

[root@istanbul customapache]#

how can i install -lmysqlclient ?
 
Hi,

Can you tell us how your config.log looks like ?

Also handy to know how your configure.php looks like.
 
http://www.fprot.gen.tr/config.log

and

Code:
#!/bin/sh
./configure \
        --with-imap=/usr/local/imap-2004d \
        --with-dom=/usr/lib \
        --with-dom-exslt=/usr/lib \
        --with-dom-xslt=/usr/lib \
        --with-imap-ssl \
        --with-apxs \
        --with-curl \
        --with-curl-dir=/usr/local/lib \
        --with-gd \
        --with-gd-dir=/usr/local/lib \
        --with-gettext \
        --with-jpeg-dir=/usr/local/lib \
        --with-kerberos \
        --with-mcrypt \
        --with-mhash \
        --with-mysql=/usr \
        --with-pear \
        --with-png-dir=/usr/local/lib \
        --with-xml \
        --with-zlib \
        --with-zlib-dir=/usr/local/lib \
        --with-zip \
        --with-openssl \
        --enable-bcmath \
        --enable-calendar \
        --enable-ftp \
        --enable-magic-quotes \
        --enable-sockets \
        --enable-track-vars \
 
interfasys said:
You don't. You need to install the mysql client and add the correct path to your configure.php.

To addition to this, you should also remove the "\" on the last line of the configure.php file.
 
First you need to drop all the /lib parts, it doesn't make any sense in a php configure script.

And, yes, you should remove the last \, just like Mikej0h said.
 
..

off, new error :(

Code:
Done Configuration.
Trying to make php...
/bin/sh /usr/local/directadmin/customapache/php-4.3.11/libtool --silent --preserve-dup-deps --mode=compile gcc  -Iext/standard/ -I/usr/local/directadmin/customapache/php-4.3.11/ext/standard/ -DPHP_ATOM_INC -I/usr/local/directadmin/customapache/php-4.3.11/include -I/usr/local/directadmin/customapache/php-4.3.11/main -I/usr/local/directadmin/customapache/php-4.3.11 -I/usr/kerberos/include -I/usr/local/include -I/usr/include/libxml2 -I/usr/include/imap -I/usr/local/directadmin/customapache/php-4.3.11/ext/xml/expat -I/usr/local/directadmin/customapache/php-4.3.11/TSRM -I/usr/local/directadmin/customapache/php-4.3.11/Zend    -g -O2  -prefer-non-pic -c /usr/local/directadmin/customapache/php-4.3.11/ext/standard/info.c
.
.
.
. -lnsl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lcurl -lssl -lcrypto -ldl -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lz -lxml2 -lz -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lcrypt -lcrypt  -o libphp4.la
ext/ctype/ctype.lo: file not recognized: File truncated
collect2: ld returned 1 exit status
make: *** [libphp4.la] Error 1

*** The make has failed, do you want to try to make again? (y,n):

:(
 
Great howto so far, but i'm stuck at this point:

for foo in *.dist ; do cp $foo `basename $foo .dist` ; done

When I do this, I get:

for: Command not found.
foo: Undefined variable.

When I do:

sh foo in *.dist ; do cp $foo `basename $foo .dist` ; done

I get:

foo: Can't open foo: No such file or directory
foo: Undefined variable.

Does someone here have an idea?
Thanks in advance.
 
No big deal at all.
This is just done to copy the backups to regular files for use with Horde in an easy way.

You can 'solve' this problem to do something like this:
cp filename.dist filename.php
(ex: cp prefs.dist prefs.php)
Do this for all the files which are located in the config/ dir.
Why are you getting this error ? Probably you're using FreeBSD or a not-linux alike distribution ?
$foo is just a variablename. Maybe your system can't handle those.

Good Luck !
 
Last edited:
Another question:

If I run /horde/test.php I get this:

Horde Version
Horde: 3.0.4
Horde Applications
Horde: 3.0.4
PHP Version
View phpinfo() screen
View loaded extensions
PHP Version: 4.3.11
PHP Major Version: 4.3
PHP Minor Version: 11
PHP Version Classification: release
You are running a supported version of PHP.
PHP Module Capabilities
Ctype Support: Yes
DOM XML Support: Yes
FTP Support: Yes
GD Support: Yes
Gettext Support: Yes
Iconv Support: Yes
IMAP Support: Yes
LDAP Support: Yes
Mbstring Support: Yes
MCAL Support: Yes
Mcrypt Support: Yes
MIME Magic Support (fileinfo): Yes
MIME Magic Support (mime_magic): No
The fileinfo PECL module (see above) or the mime_magic PHP extension will most likely provide faster MIME Magic lookups than the built-in Horde PHP magic code. See horde/docs/INSTALL for information on how to install PECL/PHP extensions.

MySQL Support: Yes
OpenSSL Support: Yes
PostgreSQL Support: No
Session Support: Yes
XML Support: Yes
Zlib Support: Yes
Miscellaneous PHP Settings
magic_quotes_runtime disabled: Yes
memory_limit disabled: No
If PHP's internal memory limit is turned on and if not set high enough Horde will not be able to handle large data items (e.g. large mail attachments in IMP). If possible, you should disable the PHP memory limit by recompiling PHP without the "--enable-memory-limit" flag. If this is not possible, then you should set the value of memory_limit in php.ini to a sufficiently high value (Current value of memory_limit: 8M).

file_uploads enabled: Yes
safe_mode disabled: Yes
session.use_trans_sid disabled: Yes
session.auto_start disabled: Yes
Required Horde Configuration Files
config/conf.php: Yes
config/mime_drivers.php: Yes
config/nls.php: Yes
config/prefs.php: Yes
config/registry.php: Yes
PHP Sessions
Session counter: 1
To unregister the session: click here
PEAR
PEAR Search Path (PHP's include_path): /var/www/html/horde-3.0.4/lib:.:/usr/local/lib/php
PEAR: Yes
Recent PEAR: Yes
Mail_RFC822: No
Make sure you are using a recent version of PEAR which includes the Mail_RFC822 class.

Mail_Mime: Yes
Log: Yes
DB: Yes
Net_Socket: Yes
Date: Yes
Auth_SASL: Yes
HTTP_Request: Yes
File: Yes
Net_SMTP: Yes
Services_Weather: Yes

Does someone know how I can get the errors/warning in bold working? Thanks in advance.
 
Wouter said:
Does someone know how I can get the errors/warning in bold working? Thanks in advance.

Hi Wouter,

MIME Magic Support (fileinfo): Yes
MIME Magic Support (mime_magic): No
The fileinfo PECL module (see above) or the mime_magic PHP extension will most likely provide faster MIME Magic lookups than the built-in Horde PHP magic code. See horde/docs/INSTALL for information on how to install PECL/PHP extensions.
I had to add "--with-mime-magic" and "--enable-mime-magic" to /usr/local/directadmin/customapache/configure.php

I would also like to add that just one is required (fileinfo AND/OR mime_magic). Horde has written their own code for this, but this is slower than the integrated code.

Note: ensure to add a \ to all lines but not the last (!).

Miscellaneous PHP Settings
magic_quotes_runtime disabled: Yes
memory_limit disabled: No
If PHP's internal memory limit is turned on and if not set high enough Horde will not be able to handle large data items (e.g. large mail attachments in IMP). If possible, you should disable the PHP memory limit by recompiling PHP without the "--enable-memory-limit" flag. If this is not possible, then you should set the value of memory_limit in php.ini to a sufficiently high value (Current value of memory_limit: 8M).
I don't know why you're getting this error, but try to add "--enable-memory-limit" to /usr/local/directadmin/customapache/configure.php

Mail_RFC822: No
Make sure you are using a recent version of PEAR which includes the Mail_RFC822 class.
This was also one of the errors I had during the install of Horde.
I thought it was simple, something like: pear install Mail
If this doesn't work try pear update Mail

EDIT:
You've just edited the configure.php file, but now you still need to recompile php. DirectAdmin can do this semi-automatic for you.
You should to this: "cd /usr/local/directadmin/customapache/" then "./build php" after this, and everything went successfull check your test.php page again.
If the build failes, remove the lines I recommended you to add. (and re-run "./build php") Mostly when building php failes you have not installed the required components.
 
Last edited:
Very short answer:
-add a higher memory limit in php.ini
-if the mail pear module is not found it may be because it's beta.

All the details are in Horde's manual.
 
Hello Mike (I think? ;)),

I had to add "--with-mime-magic" and "--enable-mime-magic" to /usr/local/directadmin/customapache/configure.php

I would also like to add that just one is required (fileinfo AND/OR mime_magic). Horde has written their own code for this, but this is slower than the integrated code.

Note: ensure to add a \ to all lines but not the last (!).

Thanks, that's working :)

I don't know why you're getting this error, but try to add "--enable-memory-limit" to /usr/local/directadmin/customapache/configure.php

--enable-memory-limit is already in configure.php, the problem is that I have/want to disable it. I have removed --enable-memory-limit from configure.php and recompiled PHP, but it's still enabled. I have changed "--enable-memory-limit" to "--disable-memory-limit" but also without any results.

This was also one of the errors I had during the install of Horde.
I thought it was simple, something like: pear install Mail
If this doesn't work try pear update Mail

Thanks, "pear install mail" was working for this :).

EDIT:
You've just edited the configure.php file, but now you still need to recompile php. DirectAdmin can do this semi-automatic for you.
You should to this: "cd /usr/local/directadmin/customapache/" then "./build php" after this, and everything went successfull check your test.php page again.
If the build failes, remove the lines I recommended you to add. (and re-run "./build php") Mostly when building php failes you have not installed the required components.

I already know, but thanks anyway :).
 
interfasys said:
Very short answer:
-add a higher memory limit in php.ini
-if the mail pear module is not found it may be because it's beta.

All the details are in Horde's manual.

Hmmm, How high would you suggest?

EDIT:

@all:

I also have:

PostgreSQL Support: No

I think this isn't a problem if I am using MySQL?
 
I should try the double of current value. I don't know if horde requires or recommends the use of the memory-limit story. But unfortunatly I can't answer this, because I've had no problems with it. (CentOS 3.4).

Support for PostgresSQL is only needed (required) if you want to use this type of databases. If you're using MySQL you don't need it.
 
Okay, thanks.
Some other strange problems:

1) I don't have:

/* auth: Handler for user authentication.
* Uncomment the auth/login/logout lines if you want to let
* IMP handle the authentication for Horde. This avoids the
* "double login" while accessing IMP.
*/
// $this->registry['auth']['login'] = 'imp';
// $this->registry['auth']['logout'] = 'imp';

in config/registry.php?! Also I found nothing wat was looking like this. I'm installing Horde 3.0.4.

2) Same as problem 1:

$this->applications['horde'] = array(
'fileroot' => dirname(__FILE__) . '/..',
'webroot' => '/horde',
'initial_page' => 'login.php',
'icon' => '/horde/graphics/home.gif',
'name' => _("Horde"),
'allow_guests' => true,
'status' => 'active',
'templates' => dirname(__FILE__) . '/../templates',
'cookie_domain' => $_SERVER['SERVER_NAME'],
// ** If IE will be used to access Horde modules, you should read
// this discussion about the cookie_path setting (discussing issues
// with IE's Content Advisor):
// http://lists.horde.org/archives/imp...113/029149.html
'cookie_path' => '/horde',
'server_name' => $_SERVER['SERVER_NAME'],
'server_port' => $_SERVER['SERVER_PORT']
);
 
This are not problems, but I think the howto is not written for horde 3, but an older version.
I had the same problem. If horde is installed out-of-the-box it can be reached ip/horde
Then you will be automaticly logged in as administrator for horde. Where you can manage this kind of things.
 
Back
Top