[imp] Blank test.php page... And more

Tony Lay tonylay at gmail.com
Thu Mar 3 11:10:00 PST 2005


I tried to keep tabs on my install.  I do remember running into an
issue with the blank page.  I think that it stemmed from the fact that
I had installed apache from a port in addition to compiling.  When I
would reboot the machine the wrong httpd would fire up.  You see the
ports don't seem to be so nice with horde...and I found that compiling
from source was the best option.

My notes are from right when the new version came out...I'm running
FBSD 5.3.1.  I can't vouch for validity or with newer versions of
horde, but I figured I'd share.

Supporting Docs
http://www.horde.org/faq/admin/
http://groups-beta.google.com/group/mailing.www.horde-imp

For Logging the big file is your friendly apache log and the screen
tail -x /var/log/httpd-error.log
/tmp/horde.log or /var/log/horde.log won't show up unless you are
really having a bad day.

configure mysql-server.  I use 4.1 (which is still recommended)
configure procmail (out of the box...haven't tweaked yet)
configure postfix (out of the box...virtual users set up)

# place sources in /usr/src for
imap-2004a
php-4.3.10
apache_1.3.33 src

cd /usr/local/src/apache_1.3.33
./configure
cd /usr/local/src/php-4.3.10
./configure --with-imap=/usr/local/src/imap-2004a
--with-apache=/usr/local/src/apache_1.3.33 --with-zlib --with-xml
--with-dom --with-dom-xslt --with-dom-exslt --with-png-dir=/usr/local
--prefix=/usr/local --with-openssl=/usr/local --with-mysql=/usr/local
--with-mm=/usr/local/lib
--with-config-file-path=/usr/local/apache/conf
--with-exec-dir=/usr/local/bin --with-system-regex
--enable-magic-quotes --enable-force-cgi-redirect
--with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib
--with-unixODBC --with-gettext=/usr/local/bin --enable-track-vars
--enable-ftp --with-ldap=/usr/local/ --with-mysqli=/usr/local/bin
--with-ctype= --with-gd --with-iconv=/usr/local/bin --enable-mbstring
--with-mime-magic --with-zlib --with-mime-magic
make
make install

## copy mod_gzip stuff to /usr/local/src/apache_1.3.33/src/modules/gzip
## in the gzip directory modify the Makefile.tmpl
## For detail see
http://www.schroepl.net/projekte/mod_gzip/install.htm#overview-static

cd /usr/local/src/apache_1.3.33
./configure --prefix=/usr/local/apache --enable-module=so
--activate-module=src/modules/php4/libphp4.a
--activate-module=src/modules/gzip/mod_gzip.c
make
make install

## a basic php config
## ./configure --with-apache=/usr/local/src/apache_1.3.33
--with-mysql=/usr/local --with-imap=/usr/local/src/imap-2004a

add index.php to DirectoryIndex
add mod_gzip to LoadModules
add DocumentRoot for horde
add VirtualServer for your webserver

************
* MOD GZIP *
************
  1. Uncompress and unpack the content of the download archive
containing the mod_gzip source code (which will create a directory
mod_gzip-versionnumber),
http://prdownloads.sourceforge.net/mod-gzip/mod_gzip-1.3.26.1a.tgz?use_mirror=unc
  2. Create a directory src/modules/gzip within the directory tree of
the Apache source

  3. Copy all files with the extensions *.c, *.h and *.tmpl into this
new gzip directory.

As next step, you extend the configure call by the parameter
--activate-module=src/modules/gzip/mod_gzip.c. Now the configure
script will find the mod_gzip source code and create a suitable
Makefile from the shipped file Makefile.tmpl - logged by the messages

+ activated gzip module (modules/gzip/mod_gzip.c)

and

Creating Makefile in src/modules/gzip

- the latter one just like for Apache's own modules. (The Makefile
shipped with mod_gzip is not suitable for this type of installation -
this one is only for the creation of a shared object file.)

Now the Apache installation will work as usual - and mod_gzip will be
treated like a normal Apache module.

********
* PEAR *
********
Install Pear!

Mail_RFC822
Mail_Mime
Log
DB
Net_Socket
Date
Auth_SASL
HTTP_Request
File
Net_SMTP
Services_Weather

********
* PECL *
********

horde cvs
setenv CVSROOT :pserver:cvsread at anoncvs.horde.org:/repository
cvs login
password is horde
cd /usr/local/www/data-dist
cvs co horde
cd horde
cvs co imp
cvs co ingo
cvs co chora
cvs co jonah
cvs co klutz
cvs co kronolith
cvs co mnemo
cvs co turba
cvs co framework
cvs co nag
cvs co passwd
cvs co whups

## Copy the dist files to the active files the first time
## You will have to reconfigure the conf.php files if options have changed
## This is based off of the config.xml file in the config directories.

su - toor ## My bash user with UID=0, root is a csh user and it's not
good to change that

cd config ## /usr/local/www/data-dist/horde/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../imp/config  ##/usr/local/www/data-dist/horde/imp/config>>
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../ingo/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../chora/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../jonah/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../klutz/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../kronolith/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../mnemo/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../turba/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../framework/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../nag/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../passwd/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd ../../whups/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done

&&
&& FOR ME
&&

cp /tmp/horde/config/*.php /usr/local/www/data-dist/horde/config
cp /tmp/horde/imp/config/*.php /usr/local/www/data-dist/horde/imp/config
cp /tmp/horde/ingo/config/*.php /usr/local/www/data-dist/horde/ingo/config
cp /tmp/horde/chora/config/*.php /usr/local/www/data-dist/horde/chora/config
cp /tmp/horde/jonah/config/*.php /usr/local/www/data-dist/horde/jonah/config
cp /tmp/horde/klutz/config/*.php /usr/local/www/data-dist/horde/klutz/config
cp /tmp/horde/kronolith/config/*.php
/usr/local/www/data-dist/horde/kronolith/config
cp /tmp/horde/mnemo/config/*.php /usr/local/www/data-dist/horde/mnemo/config
cp /tmp/horde/turba/config/*.php /usr/local/www/data-dist/horde/turba/config
cp /tmp/horde/framework/config/*.php
/usr/local/www/data-dist/horde/framework/config
cp /tmp/horde/nag/config/*.php /usr/local/www/data-dist/horde/nag/config
cp /tmp/horde/passwd/config/*.php /usr/local/www/data-dist/horde/passwd/config
cp /tmp/horde/whups/config/*.php /usr/local/www/data-dist/horde/whups/config

## ***************************
##  register horde packages  *
## ***************************

cd /usr/local/www/data-dist/horde/framework
php -q install-packages.php

********************
* configure stuff  *
********************

the minimal files you will have to edit will be
imp/servers.php For where you get mail
turba/sources.php For where your contacts databases are

For all products that you want to run off of the database pay
particular attention to
product/scripts
almost all scripts can be run like
mysql -u root -p yourpass horde < somescript.sql
where horde would be a database

An sql user must have access to this table.  I reccomend the name horde
create a user horde that has god mode on the horde database.
In the config files for products that connect to the database you will
have to indicate that mysql is "custom" and insert
your sql username/password.  The files should be r/w protected, and
there's actually a script buried somewhere that takes
care of permissions for you when you are done editing.

good pages
http://yourserver.com/horde/test.php
check imp and horde prereqs

***********
* php.ini *
***********
Seems like every time I mess with this stuff I have to redo the damn php.ini
There's only a few things that need to be changed:
include_path = ".:/usr/local/www/data/horde/lib:/usr/local/lib/php:/usr/local/share/pear"
(This is more for pear)
php.ini is tied into the limits of transactions, the size of files and
things of the like.  I'll probably be tracking this
shit down tomorrow with people bitching at me about it.

At the end of all of this I'm still missing a few things in my install
but it's 2:00 AM and my shit is working good enough to
get some shuteye.

********************
* What I'm missing *
********************
php MIME Magic Support (PECL).  This didn't work during the original
install...I'll probably dive in to this while I'm up
on the whole horde thing.

Apparently we want PECL Fileinfo-0.2

The directions say
/usr/local/lib/php/PECL/Fileinfo-0.2

php.ini
extension=fileinfo.so

php MCAL Support
php is ok with MCAL but apache chokes on the php w/MCAL
/usr/local/lib/libmcal.so: undefined reference to `cc_login'
/usr/local/lib/libmcal.so: undefined reference to `cc_searched'
/usr/local/lib/libmcal.so: undefined reference to `cc_vlog'
/usr/local/lib/libmcal.so: undefined reference to `cc_vdlog'
mcal is used for some kind of calendar stuff...but I haven't seen
where it's a requirement because the calendars (kronolith)
work just fine for us.

So this is a note to try to debug/fix the compile problem later
to check add --with-mcal to php and run the normal compile routine

Additonal things
hooks are kind of like hacks from what I can see.  The hooks are how
we run more than one domain.  Along with postfix virtual users you can
log in for more that one domain on to the same server.  I haven't
automated the domain (it's a pulldown), but it does the trick until I
can spare the time to work on it.

That's it for now...I'll try to keep up with what gets done from here out.

-TLAY


More information about the imp mailing list