##FFA500 |Installing HORDE on a Centos 4 Server##
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.1.1
Horde Applications
- 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 |
| --- | --- |
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.
/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 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
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.
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.
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.
$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' => ''
);
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/.*.*$/

for School<\/h1>/' \\
/var/www/html/horde/imp/templates/login/login.inc \\
&& grep "" /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
Need Help? Click
Here for a Manual.
";
?>
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.
$cfgSources['localsql'] = array(
To do this find the first
);
that denotes the end of the localdsql section.
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 *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*
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!
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/.*.*$/

for School<\/h1>/' \\
/var/www/html/horde/imp/templates/login/login.inc \\
&& grep "" /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
Need Help? Click
Here for a Manual.
";
?>
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.