License

Copyright (C) 2008-2020 Oliver Bohlen.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is included in the section entitled "GNU Free Documentation License".

Introduction

This documentation comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

Howto: Horde Groupware Webmail for Gentoo Linux

This is a short Howto/Example how I set up my Horde with its applications like Webmail, Groupware, PGP (GnuPG), Sieve filters, LDAP Auth,...
Here are some commands for installing Horde 4 over PEAR.

# Set your paths
BASEDIR=/var/www/horde-test.gabosh.net
PEARDIR=$BASEDIR/pear
WEBDIR=$BASEDIR/htdocs

rm /usr/bin/phpize
ln -s /usr/lib/php*/bin/phpize /usr/bin/phpize

mkdir -p $PEARDIR/pear
mkdir -p $WEBDIR
pear config-create $PEARDIR $PEARDIR/pear.conf
pear -c $PEARDIR/pear.conf install pear

$PEARDIR/pear/pear -c $PEARDIR/pear.conf channel-discover pear.horde.org
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install horde/horde_role
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install run-scripts horde/Horde_Role

$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/imp
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/kronolith
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/ingo
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/nag
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/turba
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/mnemo
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/passwd
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/gollem
$PEARDIR/pear/pear -c $PEARDIR/pear.conf install -a -B horde/wicked

chown -R root:root $BASEDIR
find $BASEDIR -type d -exec chmod 755 {} \;
find $BASEDIR -type f -exec chmod 644 {} \;
chown apache:root $WEBDIR/static
chown apache:root $WEBDIR/config
chown apache:root $WEBDIR/*/config

After these steps you should be able to open your Horde installation into your Webbrowser and create the basic configurations.
Do this in the left menu under "Administration" -> "Configuration"
After that you can follow up with the configuration of the configfiles in the config-directories you see below.



Here some steps for upgrading your Horde:
# Set yout paths
BASEDIR=/var/www/horde-test.gabosh.net
PEARDIR=$BASEDIR/pear
WEBDIR=$BASEDIR/htdocs

rm /usr/bin/phpize
ln -s /usr/lib/php*/bin/phpize /usr/bin/phpize
chmod 755 $PEARDIR/pear/pear
$PEARDIR/pear/pear -c $PEARDIR/pear.conf upgrade -a -B -c horde

chown -R root:root $BASEDIR
find $BASEDIR -type d -exec chmod 755 {} \;
find $BASEDIR -type f -exec chmod 644 {} \;
chown apache:root $WEBDIR/static
chown apache:root $WEBDIR/config
chown apache:root $WEBDIR/*/config

If you want to use this solution you need the following howto(s) finished:

Changes in /etc/openldap/slapd.conf

File permissions:
Owner: root
Group: ldap
Permissions: -rw-r-----

Click here for a download of the complete file: /etc/openldap/slapd.conf

Changed on 11.08.11
Issued by olli
Beginning line 30

LDAP schema for for horde

#include         /var/www/horde.example.com/pear/pear/data/horde/scripts/ldap/horde.schema
#include         /var/www/horde.example.com/pear/pear/data/horde/scripts/ldap/rfc2739.schema

Changes in /usr/local/sbin/mkhordestable.sh

File permissions:
Owner: root
Group: root
Permissions: -rwxr-xr-x

Click here for a download of the complete file: /usr/local/sbin/mkhordestable.sh

Changed on 04.10.11
Issued by olli
Beginning line 2

This is an optional script for syncing/copying a Horde-Installation into an new path. E.g. for moving a test Horde into production.

#!/bin/bash

# Set paths

set -x

PEARDIR=/var/www/horde.example.com/pear
WEBDIR=/var/www/horde.example.com
TESTWEBDIR=/var/www/horde-test.example.com

mkdir -p /var/www/horde.example.com
rsync -av --delete --exclude=.gtc-crypt $TESTWEBDIR/ $WEBDIR/
BASEDIR=$WEBDIR
WEBDIR=$WEBDIR/htdocs

# Set pear config
rm -f $PEARDIR/pear.conf
pear -c $PEARDIR/pear.conf config-set bin_dir /var/www/horde.example.com/pear/pear
pear -c $PEARDIR/pear.conf config-set doc_dir /var/www/horde.example.com/pear/pear/docs
pear -c $PEARDIR/pear.conf config-set ext_dir /var/www/horde.example.com/pear/pear/ext
pear -c $PEARDIR/pear.conf config-set php_dir /var/www/horde.example.com/pear/pear/php
pear -c $PEARDIR/pear.conf config-set cache_dir /var/www/horde.example.com/pear/pear/cache
pear -c $PEARDIR/pear.conf config-set cfg_dir /var/www/horde.example.com/pear/pear/cfg
pear -c $PEARDIR/pear.conf config-set data_dir /var/www/horde.example.com/pear/pear/data
pear -c $PEARDIR/pear.conf config-set download_dir /var/www/horde.example.com/pear/pear/download
pear -c $PEARDIR/pear.conf config-set temp_dir /var/www/horde.example.com/pear/pear/temp
pear -c $PEARDIR/pear.conf config-set test_dir /var/www/horde.example.com/pear/pear/tests
pear -c $PEARDIR/pear.conf config-set www_dir /var/www/horde.example.com/pear/pear/www
pear -c $PEARDIR/pear.conf config-set horde_dir /var/www/horde.example.com/htdocs

# Horde-Config
# DB
sed -e 's/hordetest/horde/g' -i $WEBDIR/config/conf.php
# LOG
sed -e 's/horde-test/horde/g' -i $WEBDIR/config/conf.php
# LOGLEVEL
sed -e 's/DEBUG/INFO/g' -i $WEBDIR/config/conf.php

# Set some rights
echo "Setting File rights"
chown -R root:root $BASEDIR
find $BASEDIR -type d -exec chmod 755 {} \;
find $BASEDIR -type f -exec chmod 644 {} \;
chown -R horde:root $WEBDIR/static
chown -R horde. /var/www/horde.example.com/.gtc-crypt
chown horde. /var/www/horde.example.com
#chown -R horde:root $WEBDIR/config
#chown -R horde:root $WEBDIR/*/config

# Clean up Pear Registry with correct paths
cd $PEARDIR/pear/php/.registry
ls -1 | while read file
do
 echo "Cleaning up $file (horde-test -> horde)"
 cat "$file" | perl -pe 's/\n/OOXXOO/; s/(s\:[0-9]+\:)/\n$1/g' | while read line
 do
  if echo $line | grep -q horde-test
  then
   line=`echo $line | perl -pe 's/horde-test/horde/'`
   chars=`echo $line | cut -d'"' -f2 | wc -m`
   let chars--
   line=`echo $line | perl -pe "s/\:[0-9]+\:/:$chars:/;"`
  fi
  echo -n $line | perl -pe 's/OOXXOO/\n/g;'
 done >/tmp/nfile
 cat /tmp/nfile >"$file"
done
cd -

# Change paths in some pear files
for i in `grep -r horde-test $PEARDIR | cut -d: -f1`
do
 echo "Changing horde-test to horde in $i"
 sed -e 's/horde-test/horde/g' -i $i
done

# DB Update
cat /var/www/horde.example.com/pear/pear.conf >/etc/pear.conf
echo 'include_path="$include_path:/var/www/horde.example.com/pear/pear:/var/www/horde.example.com/pear/pear/php"' >/etc/php/cli-php7.3/ext-active/horde-cli.ini
chmod 644 /etc/php/cli-php7.3/ext-active/horde-cli.ini
su - horde -c "/usr/bin/php $PEARDIR/pear/horde-db-migrate"

Please send a feedback to: doc<at>gabosh.net

Howto listing
File Index

Here you can find the official Gentoo Linux Forums where you can find a lot of answers.

Here a link to the official Gentoo Linux Homepage.

Edit Howto

About / Impressum

Click here for About / Impressum

Wishlist

If you want to support my work you can find my Amazon whishlist here