Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Für Modifikationen in und um KeyHelp.
Post Reply
JensE
Posts: 15
Joined: Mon 27. Dec 2021, 12:50

Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by JensE »

Ich habe keine Anleitung gefunden, Horde bei KeyHelp als Webmailer zu installieren.
Daher habe ich mir die Mühe gemacht, das selbst zu installieren, da es ein Kunde unbedingt haben wollte.

Zum eigenen Nachschlagen und für alle anderen, die ebenfalls Horde installieren wollen, will ich hier mal die Installationsschritte beschreiben, die ich gemacht habe.

Basis: Debian 11 / KeyHelp 22.0

Als erstes in KeyHelp vorbereiten:

- Neuen User "horde" in KeyHelp anlegen:
Beim Anlegen habe ich folgende Einstellungen geändert:
Allgemein->System-Domain erstellen NEIN
Ressoucen & Berechtigungen
-> Speicherplatz unbegrenzt, Domains 1 Datenbanken 1 Domain-Sicherheit JA
Unter PHP ist es wichtig, das Verzeichnis /usr/share/php in open_basedir einzutragen.

- Datenbank für horde anlegen

- Domain für horde anlegen (darüber wird Horde erreichbar sein)
Ich habe die Domain webmail.domain.de verwendet. Da domain.de aber einem anderen user gehört, war das etwas tricky.
1. Als user der Domain domain.de die Domain webmail.domain.de anlegen.
Da webmail.domain.de nun aber dem falschen user gehört, müssen wir das direkt in der Datenbank keyhelp ändern.
KeyHelp lässt es nicht zu, das Subdomains bei einem anderen user angelegt werden, als dem user, der die Hauptdomain angelegt hat.
Deshalb müssen wir die DB keyhelp öffnen und nach der user_id des users horde suchen. Die steht in der Tabelle 'users' in der Spalte 'id'
Wenn wir die ID des horde-users kennen können wir zur Tabelle 'domains' wechseln und diese dort in das Feld 'id_user' unserer Webmail-Domain eintragen.
Anschließend finden wir die Webmail-Domain beim user horde und können die hier konfigurieren und das SSL-Zertifikat einrichten.

Nun geht es auf der Konsole als root weiter:
Horde lässt sich einfach mit folgenden Befehlen über PEAR installieren:

# fehlende php extension tidy installieren
apt-get install php-tidy

# Horde PEAR channel registrieren:
pear channel-discover pear.horde.org

# Das Installationsverzeichnis für Horde setzen:
pear install horde/horde_role
pear run-scripts horde/horde_role
# bei Abfrage "Filesystem location for the base Horde application:"
-> Web-Pfad des horde-Users angeben: /home/users/horde/www/

# Horde Groupware Webmail Edition installieren:
pear install -a -B horde/webmail

# Nun das Installationsscript starten und die Fragen beantworten
webmail-install
#folgende Fragen beantworten
What database backend should we use?
-> mysqli
Username to connect to the database as* []
-> DB-User der HORDE-DB
Password to connect with
-> DB-Passwort der HORDE-DB
How should we connect to the database?
-> ENTER
Location of UNIX socket []
-> ENTER
Database name to use* []
-> DB-Name der HORDE-DB
Internally used charset* [utf-8]
-> utf8mb4
Use SSL to connect to the (DB-)server?
-> false
Split reads to a different server?
-> false
Should Horde log all queries.
-> 0

# standard-Website von Keyhelp aus dem Web-root löschen, damit auch HORDE angezeigt wird
rm /home/users/horde/www/index.html
rm /home/users/horde/www/bulma.min.css

Horde sollte nun über die Domain webmail.domain.de erreichbar sein.
--------------
Wenn sich horde nicht auf deutsch umstellen lässt, prüfen, ob die deutschen locale installiert sind.
Das geht ebenfalls in der Konsole als root

# welche Locale sind installiert?
locale

# benötigte locale installieren
dpkg-reconfigure locales

# standard locale setzen
localectl set-locale LANG=de_DE.UTF-8

WICHTIG: Server neu starten bzw Konsole neu starten, damit die Änderungen wirksam werden.

Viel Spaß nun mit horde.

PS.: Hier noch der Link zur offiziellen Installationsanleitung
https://www.horde.org/apps/webmail/docs/INSTALL



[Mod-Edit]
Thread nach Bastelecke verschoben.
Last edited by Jolinar on Thu 31. Mar 2022, 17:51, edited 1 time in total.
Reason: Mod-Edit
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by 24unix »

JensE wrote: Thu 31. Mar 2022, 16:29 Unter PHP ist es wichtig, das Verzeichnis /usr/share/php in open_basedir einzutragen.
Warum das?
JensE wrote: Thu 31. Mar 2022, 16:29 localectl set-locale LANG=de_DE.UTF-8
Damit vergnaddelst Du doch das Setup des gesamten Servers.
Wenn Horde das wirklich braucht, dann würde ich das maximal für den einen User machen, besser noch über die Umgebungsvariablen nur für Horde.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
Jolinar
Community Moderator
Posts: 3559
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by Jolinar »

JensE wrote: Thu 31. Mar 2022, 16:29 - Domain für horde anlegen (darüber wird Horde erreichbar sein)
Ich habe die Domain webmail.domain.de verwendet. Da domain.de aber einem anderen user gehört, war das etwas tricky.
1. Als user der Domain domain.de die Domain webmail.domain.de anlegen.
Da webmail.domain.de nun aber dem falschen user gehört, müssen wir das direkt in der Datenbank keyhelp ändern.
KeyHelp lässt es nicht zu, das Subdomains bei einem anderen user angelegt werden, als dem user, der die Hauptdomain angelegt hat.
Deshalb müssen wir die DB keyhelp öffnen und nach der user_id des users horde suchen. Die steht in der Tabelle 'users' in der Spalte 'id'
Wenn wir die ID des horde-users kennen können wir zur Tabelle 'domains' wechseln und diese dort in das Feld 'id_user' unserer Webmail-Domain eintragen.
Das bekommst du mit Bordmitteln hin...
Als Admin die Domain webmail.domain.de als Domain (nicht als Subdomain) anlegen und dem User Horde zuweisen...fertig. 8-)
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
JensE
Posts: 15
Joined: Mon 27. Dec 2021, 12:50

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by JensE »

Jolinar wrote: Thu 31. Mar 2022, 17:32
JensE wrote: Thu 31. Mar 2022, 16:29 - Domain für horde anlegen (darüber wird Horde erreichbar sein)
Ich habe die Domain webmail.domain.de verwendet. Da domain.de aber einem anderen user gehört, war das etwas tricky.
1. Als user der Domain domain.de die Domain webmail.domain.de anlegen.
Da webmail.domain.de nun aber dem falschen user gehört, müssen wir das direkt in der Datenbank keyhelp ändern.
KeyHelp lässt es nicht zu, das Subdomains bei einem anderen user angelegt werden, als dem user, der die Hauptdomain angelegt hat.
Deshalb müssen wir die DB keyhelp öffnen und nach der user_id des users horde suchen. Die steht in der Tabelle 'users' in der Spalte 'id'
Wenn wir die ID des horde-users kennen können wir zur Tabelle 'domains' wechseln und diese dort in das Feld 'id_user' unserer Webmail-Domain eintragen.
Das bekommst du mit Bordmitteln hin...
Als Admin die Domain webmail.domain.de als Domain (nicht als Subdomain) anlegen und dem User Horde zuweisen...fertig. 8-)
Danke für den Tipp. Ich hatte das auf einem Testserver ausprobiert. Dort konnte ich die webmail.domain.de nicht bei einem anderen User anlegen. Jetzt auf dem Produktivserver hat das funktioniert.
Ich würde meinen ersten Post gerne korrigieren. Kann ich den irgendwo bearbeiten?
JensE
Posts: 15
Joined: Mon 27. Dec 2021, 12:50

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by JensE »

24unix wrote: Thu 31. Mar 2022, 16:38
JensE wrote: Thu 31. Mar 2022, 16:29 Unter PHP ist es wichtig, das Verzeichnis /usr/share/php in open_basedir einzutragen.
Warum das?

Weil unter diesem Pfad die PEAR-Pakete liegen. Ist der Pfad nicht eingetragen, kommt folgende Error-Meldung:
PHP Warning: require_once(): open_basedir restriction in effect. File(/usr/share/php/Horde/Autoloader/Default.php) is not within the allowed path(s):
JensE wrote: Thu 31. Mar 2022, 16:29 localectl set-locale LANG=de_DE.UTF-8
Damit vergnaddelst Du doch das Setup des gesamten Servers.
Wenn Horde das wirklich braucht, dann würde ich das maximal für den einen User machen, besser noch über die Umgebungsvariablen nur für Horde.
Da magst du recht haben. Auf meinem Produktiv-Server habe ich das auch nicht gebraucht.

Was man auch nicht vergessen darf ist, die ganzen gesperrten Funktionen unter PHP disable_functions im horde-Profil zu löschen. Sonst funktioniert die Hälfte von Horde nicht...
User avatar
Jolinar
Community Moderator
Posts: 3559
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by Jolinar »

JensE wrote: Mon 2. May 2022, 22:01 Ich würde meinen ersten Post gerne korrigieren. Kann ich den irgendwo bearbeiten?
Das geht leider nur für eine gewisse Zeitspanne.
Du hast zwei Möglichkeiten:
1. Du schreibst deine Änderungen in weiteren Posts fort (ist ja schließlich auch dein Thread ;) ), so kann man die Entwicklung deines "Bastelprojekts" verfolgen und nachvollziehen.
2. Sollten es nur punktuelle Änderungen sein, die du im Startpost gemacht haben willst, kannst du auch einen der Moderatoren per PN kontaktieren und die gewünschten Änderungen mitteilen, dann wird das auch entsprechend im Startpost angepaßt.
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
JensE
Posts: 15
Joined: Mon 27. Dec 2021, 12:50

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by JensE »

Okay, bei der Installation und dem anschließenden Testen auf dem Produktivserver haben sich noch ein paar Änderungen / Ergänzungen ergeben. Ich fasse die mal kurz zusammen:

Beim KeyHelp-User horde musste ich noch folgende Anpassungen in den PHP-Einstellungen vornehmen:
open_basedir musste ich noch um den Ordner ##DOCROOT##/tmp/.. erweitern, da ich sonst in Horde keine Sessions anzeigen lassen konnte.
Der Eintrag dafür sieht jetzt so aus:

open_basedir:
##DOCROOT##/www:##DOCROOT##/files:##DOCROOT##/tmp:/usr/share/php:##DOCROOT##/tmp/..

Die Einträge in disable_functions habe ich alle gelöscht, da sonst keine Logs geschrieben werden können und sonst sehr viel in Horde nicht funktioniert.

Unter Ressourcen & Berechtigungen habe ich noch Domain-Sicherheit und Zertifikatsverwaltung aktiviert, damit ich das Lets Encrypt Zertifikat als horde verwalten kann.

Bei der Domain webmail.domain.de

Die Domain konnte ich ohne Eingriff in die DB anlegen. Wichtig ist die Domain als Hauptdomain anzulegen.

PS: Was ich nur nicht verstehe, warum muss ich den Ordner ##DOCROOT##/tmp/.. in open_basedir angeben, wenn doch schon der Ordner ##DOCROOT##/tmp angegeben ist. Der Ordner sollte doch schon erlaubt sein, da es ein Unterordner ist. Vielleicht weiß jemand warum und kann mir das erklären...
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: Horde Groupware 5.2.22 auf einem KeyHelp-Server installieren

Post by 24unix »

JensE wrote: Tue 3. May 2022, 10:09 PS: Was ich nur nicht verstehe, warum muss ich den Ordner ##DOCROOT##/tmp/.. in open_basedir angeben, wenn doch schon der Ordner ##DOCROOT##/tmp angegeben ist. Der Ordner sollte doch schon erlaubt sein, da es ein Unterordner ist. Vielleicht weiß jemand warum und kann mir das erklären...
Mit dem ".." gehst Du eine Ebene höher, effektiv gibst Du damit also das komplette DocRoot frei.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
Post Reply