6.0.0-git
2024-04-27
Last Modified 2006-05-17 by Guest

Installing HORDE


Since Horde is such a large part of what we are doing, I have made a whole seperate section to working with Horde.

As of this writing the versions we are using are:

Horde Version

* Horde: 3.0.9

News Flash, we have just staqrted using

Horde Version

* Horde: 3.1.1

Horde Applications

* Agora: 0.1-cvs

* Ansel: 0.1-cvs (run Ansel tests)

* Chora: H3 (2.0.1)

* Gollem: H3 (1.0.2) (run Gollem tests)

* Hermes: 0.1-cvs

* Imp: H3 (4.1) (run Imp tests)

* Ingo: H3 (1.1) (run Ingo tests)

* Jonah: 0.1-cvs (run Jonah tests)

* Kronolith: H3 (2.1)

* Mimp: H3 (1.0-RC1) (run Mimp tests)

* Mnemo: H3 (2.1)

* Nag: H3 (2.1)

* Nic: 0.1-cvs (run Nic tests)

* Passwd: H3 (3.0) (run Passwd tests)

* Rakim: 0.1-cvs

* Sam: 0.1-cvs

* Swoosh: 0.1-cvs

* Turba: H3 (2.1) (run Turba tests)

* Wicked: 0.1-cvs (run Wicked tests)

http://horde.org http://www.horde.org/source/modules.php

To install Horde you need to have the modules and upgrades done as outline in BuildingACentosServer.

Get the local domain name.


export DOMAINNAME=`cat /etc/sysconfig/network|grep DOMAINNAME|cut -d= -f2`

export HOSTNAME=`cat /etc/sysconfig/network|grep HOSTNAME|cut -d= -f2`

sed -ie 's/.*memory_limit.*$/memory_limit = 64M/' /etc/php.ini \

         && grep memory_limit /etc/php.ini

Installing pear dependencies.

we need to make sure that all the pear modules are installed and of the latest versions.

Run the following code in a SSH session as root.


/etc/init.d/httpd restart

pear install  XML_RPC

pear upgrade  XML_RPC

pear upgrade PEAR-1.3.6

pear install Log

pear install Mail_Mime

pear install Mail

pear install File

pear install Date

pear install Auth_SASL

pear install Archive_Tar

pear install Net_SMTP

pear install Net_UserAgent_Detect

pear install Net_URL

pear install HTTP_Request

pear install HTML_Common

pear install HTML_Template_IT

pear install HTTP

pear install Cache

pear install Console_Getopt

pear install XML_SVG

pear install SOAP

pear install XML_Parser

pear install XML_RPC

pear install XML_Serializer

pear install Services_Weather

pear install Text_Wiki

pear install Net_DNS

pear install Net_Ping

pear install Net_Traceroute

pear upgrade Archive_Tar pear

pear upgrade-all

pear channel-update pear.php.net

pear upgrade-all

This is an overkill, but at least it makes sure we REALLY have everything!

Install Horde

Down load the latested production copies of HORDE.


tar -zxf /mnt/$version/utilities/horde/horde-3* -C /var/www/html/

cd /var/www/html/

mv horde-3* horde

cd /var/www/html/horde

We use a network mounted copy of all our setup files so the /mnt/$version refers to a location you set up as needed.


# remove from list as needed

for i in agora ansel chora gollem hermes imp ingo jonah klutz kronolith mimp mnemo nag nic passwd rakim sam swoosh turba vacation whups wicked

do

   tar -zxf /mnt/$version/utilities/horde/$i* -C /var/www/html/horde

   mv $i-* $i

done

mysql

Just for fun we stop and start mysql


/etc/init.d/mysqld stop

/etc/init.d/mysqld start

/etc/init.d/mysqld start

Horde Configuration

Now we create all the needed configuration files.


cd /var/www/html/horde/config

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

for i in agora ansel chora gollem hermes imp ingo jonah klutz kronolith mimp mnemo nag nic passwd rakim sam swoosh turba vacation whups wicked

do

     cd /var/www/html/horde/$i/config

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

done

chown -R apache.apache /var/www/html/horde

Horde Passwords

You need to edit /var/www/html/horde/scripts/sql/create.mysql.sql and put in your own desired password that Horde will use to access the MYSql database.

Now create all the Horde database tables.


mysql -uroot -p$passwdmysql < /var/www/html/horde/scripts/sql/create.mysql.sql

echo -n Horde -

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/kronolith/scripts/sql/kronolith.mysql.sql

echo -n kronolith -

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/mnemo/scripts/sql/mnemo.sql

echo -n mnemo -

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/nag/scripts/sql/nag.sql

echo -n nag -

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/turba/scripts/sql/turba_objects.mysql.sql

echo -n turba

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/hermes/scripts/sql/hermes.sql

echo -n hermes

mysql -uroot horde -p$passwdmysql <  /var/www/html/horde/jonah/scripts/sql/jonah.sql

echo -n jonah

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/nic/scripts/sql/nic.sql

echo -n nic

mysql -uroot horde -p$passwdmysql <  /var/www/html/horde/rakim/scripts/sql/rakim.sql

echo -n rakim

mysql -uroot horde -p$passwdmysql <  /var/www/html/horde/sam/scripts/sql/spamd_sql.mysql.sql

echo -n sam

mysql -uroot horde -p$passwdmysql <  /var/www/html/horde/swoosh/scripts/sql/swoosh.sql

echo -n swoosh

mysql -uroot horde -p$passwdmysql < /var/www/html/horde/wicked/scripts/sql/wicked.sql

echo -n wicked

$passwdmysql is the varable that holds the password for the root user in mysql, you need to use what ever you have set.

Sendmail

now let apache be a trusted user in sendmail.


echo apache>>/etc/mail/trusted-users

Dovecot

Edit /etc/dovecot.conf with what protocols you are going to use, we allow imap imaps pop3 pop3s.

Lets restart everything.


sed -ie 's/.*#protocols = imap imaps.*$/protocols = imap imaps pop3 pop3s/' /etc/dovecot.conf \

         && grep "protocols = imap" /etc/dovecot.conf

/etc/init.d/dovecot restart

/etc/init.d/httpd restart

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

/etc/init.d/mysqld start

/etc/init.d/vsftpd restart

Imp Server Configuration

Make your changes to /var/www/html/horde/imp/config/servers.php to reflect the name of your server.

Here is an example:


$servers['imap'] = array(

    'name' => 'IMAP Server',

    'server' => 'mail.access-info.co.nz',

    'protocol' => 'imap/notls',

    'port' => 143,

    'folders' => '',

    'namespace' => '',

    'maildomain' => 'access-info.co.nz',

    'smtphost' => 'mail.access-info.co.nz',

    'realm' => 'access-info.co.nz',

    'preferred' => ''

);

This is the script that we use to carry out the correct changes needed with /var/www/html/horde/imp/config/servers.php


sed -ie 's/.*'\''server'\'' => '\''imap.example.com'\'',.*$/    '\''server'\'' => '\'''$HOSTNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'server' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''maildomain'\'' => '\''example.com'\'',.*$/    '\''maildomain'\'' => '\'''$DOMAINNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'maildomain' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''smtphost'\'' => '\''smtp.example.com'\'',.*$/    '\''smtphost'\'' => '\'''$HOSTNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'smtphost' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''realm'\'' => '\'''\'',.*$/    '\''realm'\'' => '\'''$DOMAINNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'realm' => '" /var/www/html/horde/imp/config/servers.php

Look and Feel at Logon


sed -ie 's/.*<h1 align="center">.*$/<h1 align="center"><?php echo $title ?><br> <img src=..\/themes\/graphics\/title.jpg><br><font color=white>for School<font color=black><\/h1>/' \

      /var/www/html/horde/imp/templates/login/login.inc \

      && grep "<h1 align="\""center"\"">" /var/www/html/horde/imp/templates/login/login.inc

mv /var/www/html/horde/imp/config/motd.php /var/www/html/horde/imp/config/motd.php.org

/bin/cat << EOF >> /var/www/html/horde/imp/config/motd.php

<?php

echo "<p align=center>

   <a href=http://".\$_SERVER['HTTP_HOST']."/iserver/faq/using_horde.pdf

   title='Click here for a Manual on the Use of your WebMail'

   target=_blank>Need Help? Click <img border=0 src=http://".\$_SERVER['HTTP_HOST']."/iserver/images/help.gif>

   Here for a Manual.</a><br>";

?>

EOF

cat /var/www/html/horde/imp/config/motd.php.org >> /var/www/html/horde/imp/config/motd.php

Register Modules


pico /var/www/html/horde/config/registry.php

Make active the following modules if you have installed them.

jonah hermes gollem agora ansel swoosh wicked

Testing

In a web browser goto yoursite/horde/test.php and yoursite/horde/imp/test.php and see that everything is going okay.

Configure in Horde

Go to yoursite/horde and you are presented with the Administrators page.

Set up Horde as needed.

Here are some of the settngs that we use.

Horde
General NOTHING TO DO
Database Database server/host
" Username to connect to the database as Password to connect with
" Database name to use
Authentication Which users should be treated as administrators (root, super-user) by Horde?
" What backend should we use for authenticating users to Horde?
" The application which is providing authentication Horde Sign Up
Sign Up NOTHING
Logging NOTHING
Preference System What preferences driver should we use?
" Driver configuration
" The name of the preference table in the database [horde_prefs]
DataTree System What backend should we use for Horde DataTree storage?
" Driver configuration
" The name of the data table in the database [horde_datatree]
Groups NOTHING
Cache System NOTHING
Token System NOTHING
Mailer NOTHING
Virtual File Storage NOTHING
Custom Session Handler NOTHING
Image Manipulation NOTHING
MIME Detection NOTHING
Hostname->Country Lookup NOTHING
Problem Reporting If problem reporting is enabled in an application's menu, where should problem report emails be sent?
Menu Settings The URL of an image for the top of the Horde menu. The image should be no larger than 140 pixels wide by 40 pixels high to prevent the frame from scrolling.
" If a logo is displayed in the Horde menu, what URL (if any) should it link to?
Custom Function Hooks NOTHING
Portal Block Configuration NOTHING
Kolab Groupware Server NOTHING
Address Book Setup
Menu Settings Add Items as desired
Calendar Setup
Reminder Settings Server name from which reminder emails should be sent.
" Email address from which reminder emails should be sent.
File Manager Setup
Menu Settings Add Items as desired
Filters Setup
Menu Settings Add Items as desired
Mail Setup
External Utilities and Menu Add Items as desired
User Capabilities and Constraints NOTHING
Mail Server NOTHING
Mailbox and Fetchmail NOTHING
Message and Spam NOTHING
Compose NOTHING
Custom Hooks NOTHING
Other settings NOTHING
Notes Setup
Menu Settings Add Items as desired
Tasks Setup
Menu Settings Add Items as desired

Now try logging on to horde.

Can't logon?

Check : /var/www/html/horde/imp/config/servers.php

Check : /etc/hosts

Check : /etc/hosts.allow

Check : /etc/sysconfig/network

Logon very slow?

Check: that you have hashed out any addresses books settings in turba/config/sources.php that you are not using

Horde runnning slow?

The most common reason for Horde to run slow is that the Address Book section is trying to access Address Books and Address Book systems that do not exist.

Edit /var/www/html/horde/turba/config/sources.php

Delete all the sections except


$cfgSources['localsql'] = array(

To do this find the first


);

that denotes the end of the localdsql section.

And delete everything after this.

Httpd wont restart?


Upgrading HORDE


As features and upgrades become available for HORDE we will need to upgrade them. This secion deals with upgrading all of HORDE and just sepected modules of HORDE.

Upgrading HORDE

Upgrading pear


pear upgrade PEAR-1.3.6

pear upgrade-all

pear upgrade pear

pear channel-update pear.php.net

pear install SOAP

pear install XML_Parser

pear install XML_RPC

pear install XML_Serializer

pear install Services_Weather

pear install Text_Wiki

pear install Net_DNS

pear install Net_Ping

pear install Net_Traceroute

pear upgrade-all

Get Horde


mkdir /zone/horde

cd /zone/horde

wget http://ai.net.nz/files/horde/ansel-HEAD-2006-03-18.tar.gz 

wget http://ai.net.nz/files/horde/gollem-h3-1.0.2.tar.gz 

wget http://ai.net.nz/files/horde/horde-3.1.1.tar.gz  

wget http://ai.net.nz/files/horde/imp-h3-4.1.1.tar.gz 

wget http://ai.net.nz/files/horde/ingo-h3-1.1.tar.gz  

wget http://ai.net.nz/files/horde/kronolith-h3-2.1.1.tar.gz  

wget http://ai.net.nz/files/horde/mnemo-h3-2.1.tar.gz  

wget http://ai.net.nz/files/horde/nag-h3-2.1.tar.gz  

wget http://ai.net.nz/files/horde/passwd-h3-3.0.tar.gz 

wget http://ai.net.nz/files/horde/rakim-HEAD-2006-03-18.tar.gz   

wget http://ai.net.nz/files/horde/sam-HEAD-2006-03-18.tar.gz

wget http://ai.net.nz/files/horde/turba-h3-2.1.tar.gz

wget http://ai.net.nz/files/horde/vacation-h3-3.0-rc1.tar.gz

wget http://ai.net.nz/files/horde/whups-HEAD-2006-04-08.tar.gz 

wget http://ai.net.nz/files/horde/wicked-HEAD-2006-04-08.tar.gz

Archive the current copy of Horde


mv /var/www/html/horde /var/www/html/horde.old

Create the New Horde


tar -zxf /zone/horde/horde-3* -C /var/www/html/

cd /var/www/html/

mv horde-3* horde

cd /var/www/html/horde

for i in ansel gollem imp ingo kronolith mnemo nag passwd rakim sam turba vacation whups wicked

do

   tar -zxf /zone/horde/$i* -C /var/www/html/horde

   mv $i-* $i

done

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

/etc/init.d/mysqld start

cd /var/www/html/horde/config

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

for i in ansel gollem imp ingo kronolith mnemo nag passwd rakim sam turba vacation whups wicked

do

   cd /var/www/html/horde/$i/config

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

done

cd /var/www/html/horde/turba/config/

rm -f sources.php

wget http://202.174.163.41/files/horde/sources.txt

mv sources.txt sources.php

chown -R apache.apache /var/www/html/horde

pico /var/www/html/horde/config/registry.php

Edit this file above and make active: wicked, sam, ansel, rakim, whups

Check for database upgrades at this point!

Run any database scripts for new modules.


export DOMAINNAME=`cat /etc/sysconfig/network|grep DOMAINNAME|cut -d= -f2`

export HOSTNAME=`cat /etc/sysconfig/network|grep HOSTNAME|cut -d= -f2`

sed -ie 's/.*'\''server'\'' => '\''imap.example.com'\'',.*$/    '\''server'\'' => '\'''$HOSTNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'server' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''maildomain'\'' => '\''example.com'\'',.*$/    '\''maildomain'\'' => '\'''$DOMAINNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'maildomain' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''smtphost'\'' => '\''smtp.example.com'\'',.*$/    '\''smtphost'\'' => '\'''$HOSTNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'smtphost' => '" /var/www/html/horde/imp/config/servers.php

sed -ie 's/.*'\''realm'\'' => '\'''\'',.*$/    '\''realm'\'' => '\'''$DOMAINNAME''\'',/' /var/www/html/horde/imp/config/servers.php \

          && grep "'realm' => '" /var/www/html/horde/imp/config/servers.php

Look and Feel at Logon


sed -ie 's/.*<h1 align="center">.*$/<h1 align="center"><?php echo $title ?><br> <img src=..\/themes\/graphics\/title.jpg><br><font color=white>for School<font color=black><\/h1>/' \

      /var/www/html/horde/imp/templates/login/login.inc \

      && grep "<h1 align="\""center"\"">" /var/www/html/horde/imp/templates/login/login.inc

mv /var/www/html/horde/imp/config/motd.php /var/www/html/horde/imp/config/motd.php.org

/bin/cat << EOF >> /var/www/html/horde/imp/config/motd.php

<?php

echo "<p align=center>

   <a href=http://".\$_SERVER['HTTP_HOST']."/iserver/faq/using_horde.pdf

   title='Click here for a Manual on the Use of your WebMail'

   target=_blank>Need Help? Click <img border=0 src=http://".\$_SERVER['HTTP_HOST']."/iserver/images/help.gif>

   Here for a Manual.</a><br>";

?>

EOF

cat /var/www/html/horde/imp/config/motd.php.org >> /var/www/html/horde/imp/config/motd.php

Register Modules


pico /var/www/html/horde/config/registry.php

Make active the following modules if you have installed them.

jonah hermes gollem agora ansel swoosh wicked

Upgrading Individual Modules