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: 3.1.1
* Agora: 0.1-cvs
* Ansel: 0.1-cvs
* Chora: H3 (2.0.1)
* Gollem: H3 (1.0.2)
* Hermes: 0.1-cvs
* Imp: H3 (4.1)
* Ingo: H3 (1.1)
* Jonah: 0.1-cvs
* Kronolith: H3 (2.1)
* Mimp: H3 (1.0-RC1)
* Mnemo: H3 (2.1)
* Nag: H3 (2.1)
* Nic: 0.1-cvs
* Passwd: H3 (3.0)
* Rakim: 0.1-cvs
* Sam: 0.1-cvs
* Swoosh: 0.1-cvs
* Turba: H3 (2.1)
* Wicked: 0.1-cvs
http://horde.org | http://www.horde.org/source/modules.php |
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
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
Down load the latest 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
# 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
Just for fun we stop and start mysql
/etc/init.d/mysqld stop /etc/init.d/mysqld start /etc/init.d/mysqld start
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
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
now let apache be a trusted user in sendmail.
echo apache>>/etc/mail/trusted-users
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
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.example.com', 'protocol' => 'imap/notls', 'port' => 143, 'folders' => '', 'namespace' => '', 'maildomain' => 'example.com', 'smtphost' => 'mail.example.com', 'realm' => 'example.com', 'preferred' => '' );
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
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
pico /var/www/html/horde/config/registry.php
jonah | hermes | gollem | agora | ansel | swoosh | wicked |
In a web browser goto yoursite/horde/test.php and yoursite/horde/imp/test.php and see that everything is going okay.
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 |
Check : /var/www/html/horde/imp/config/servers.php
Check : /etc/hosts
Check : /etc/hosts.allow
Check : /etc/sysconfig/network
Check: that you have hashed out any addresses books settings in turba/config/sources.php that you are not using
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(
);
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.
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
mkdir /zone/horde cd /zone/horde wget *ansel* wget *gollem* wget *horde* wget *imp* wget *kronolith* wget *mnemo* wget *nag* wget *passwd* wget *rakim* wget *sam* wget *turba* wget *vacation* wget *whups* wget *wicked*
mv /var/www/html/horde /var/www/html/horde.old
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
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
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
pico /var/www/html/horde/config/registry.php
jonah | hermes | gollem | agora | ansel | swoosh | wicked |