Mit E-Mail-Diensten muss sich jeder Administrator früher oder später einmal beschäftigen. Das zur CeBIT erscheinende ADMIN 02/2012 gibt dazu Praxis-Tipps und ... (mehr)

Eigenes PEAR

PEAR ist in der Lage, sich selbst zu installieren und dabei eine neue, bis auf die Abhängigkeit zu PHP autonome Umgebung zu generieren. Diese Möglichkeit kann der Administrator nutzen, um die Horde-Installation weitgehend unabhängig vom Gesamtsystem aufzusetzen. Folgender Befehl erzeugt in dem oben neu angelegten Verzeichnis eine neue PEAR-Umgebung:

pear config-create /var/www/webmail /var/www/webmail/pear.conf
pear -c /var/www/webmail/pear.conf install pear

Dieser Schritt verwendet noch das PEAR-Kommando der zugrunde liegenden Distribution, meist »/usr/bin/pear« . In den folgenden Schritten der Installation verwendet man die eben installierte Variante über »/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf ...« .

Die Horde-Pakete liegen auf dem PEAR-Server des Horde-Projektes [2]. Die frisch installierte PEAR-Umgebung weiß aber von der Existenz dieses Paket-Anbieters noch nichts. Es findet und merkt sich den entsprechenden Server aber mit folgendem Befehl:

/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf channel-discover pear.horde.org

Der erste Schritt der eigentlichen Installation installiert nun ein Hilfsskript, das es dem Administrator erlaubt, das Zielverzeichnis der Horde-Installation festzulegen:

/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf install horde/horde_role
/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf run-scripts horde/horde_role

Das Skript meldet sich mit einer Frage nach dem Installationsort, die man mit »/var/www/webmail« beantwortet. Dann kann die eigentliche Installation beginnen:

/var/www/webmail/pear/pear -c /var/www/webmail/pear.conf install -a -B horde/webmail

Der Skript-Aufruf endet mit folgender Meldung:

install ok: channel://pear.horde.org/webmail-4.0.6

Es gibt ein Verzeichnis, das Horde verwendet, um einmal erzeugt, statische Inhalte effizient auszuliefern: »/var/www/webmail/static/« . Für dieses Verzeichnis sollte der Webserver Schreibrechte besitzen. Unter der Annahme, dass der Server als Nutzer »www-data« läuft, führen die folgenden beiden Zeilen zum gewünschten Ergebnis:

chown www-data /var/www/webmail/static/
chmod 644 /var/www/webmail/static/

Bleibt als abschließender Schritt das automatische Konfigurationsskript, das die Basis-Konfiguration erzeugt. Das Skript benötigt dafür eine Datenbank. Im Beispiel soll das eine MySQL-Datenbank sein, die mit »CREATE DATABASE webmail« erzeugt wurde, einschließlich des Benutzers »webmail« mit Schreibrechten für der Datenbank. Außerdem muss natürlich das PHP-Modul für die Kommunikation mit der Datenbank installiert sein. Für MySQL heißt das entsprechende Paket unter Debian zum Beispiel »php5-mysql« . Sind diese Bedingungen erfüllt, ruft der Administrator das Konfigurationsskript folgendermaßen auf:

PHP_PEAR_SYSCONF_DIR=/var/www/webmail php \
-d include_path=/var/www/webmail/pear/php \
 /var/www/webmail/pear/webmail-install

Das Skript stellt einige Fragen (Listing 1), initialisiert die Datenbank und erzeugt die initiale Konfigurationdatei »/var/www/webmail/config/conf.php« . Folgt der Administrator der hier angegebenen Installationsanweisung, so installiert er Horde in einer separaten Umgebung. Damit liegt der PHP-Code der Applikation nicht im normalen Include-Pfad des Systems, und PHP könnte die Anwendung ohne entsprechenden Hinweis nicht ausführen. Der Administrator ergänzt deshalb die Konfiguration des Webservers (zum Beispiel unter Debian in der Datei »/etc/apache2/sites-available/default« ) um folgende Zeilen:

Listing 1

Initiale Konfiguration des Systems

 

<Directory "/var/www/webmail/">
 php_value include_path /var/www/webmail/pear/php
SetEnv PHP_PEAR_SYSCONF_DIR /var/www/webmail
</Directory>

Nach einem Neustart des Webservers kann der Administrator fürs Erste seine Arbeit auf der Kommandozeile beenden und die letzten Konfigurationsschritte im Webbrowser durchführen.

An dieser Stelle sollte der Aufruf der URL http://example.com/webmail/ zur Login-Maske führen (Abbildung 1). Ist dies nicht der Fall, sollte der Administrator einen Blick auf das Ergebnis des Horde-Test-Skriptes werfen. Das Skript kann er aktivieren, indem er in der Datei »/var/www/webmail/config/conf.php« die Konfiguration »$conf['testdisable'] = false;« setzt und anschließend die URL http://example.com/webmail/test.php aufruft. Das Skript zeigt eventuelle Konfigurationsfehler oder fehlende Abhängigkeiten an. Allerdings hat der Wechsel auf die PEAR-Installation mögliche Fehler bei den Abhängigkeiten im Vergleich zu früher deutlich reduziert.

Abbildung 1: Horde begrüßt den Anwender mit der Anmeldemaske.

Unter der Annahme, dass der IMAP-Server auf der gleichen Maschine liegt wie die Webmail-Installation, sollten sich die E-Mail-Nutzer jetzt einloggen können. Liegt der IMAP-Server auf einem entfernten System, muss der entsprechende Host-Name noch angegeben werden. Dazu dient die Datei »/var/www/webmail/imp/config/backends.local.php« , die – abgesehen vom richtigen Hostnamen – ungefähr so wie in Listing 2 aussehen sollte. Initial existiert übrigens nur die Datei »/var/www/webmail/imp/config/backends.php« , die man nicht verändern darf. PEAR wird sie mit der Installation des nächsten Updates überschreiben. Diese Regel gilt für alle Konfigurationsdateien in einem »config« -Ordner, außer den »conf.php« -Dateien.

Listing 2

Die Konfiguration des IMAP-Servers

 

Konfiguration

Wer die Installation erfolgreich gemeistert hat und sich das erste Mal als Administrator des Systems einloggt (siehe Listing 1), fühlt sich vermutlich durch die Konfigurationsmöglichkeiten der Applikationen erschlagen. Die Basis-Applikation Horde bietet allein schon 35 Konfigurationsseiten und bis zu 20 Optionen pro Seite (Abbildung 2). Die anderen Applikationen besitzen dann noch eigene Konfigurationsseiten. Es ist aber nicht so schlimm, wie es aussieht. Zum einen ist eine Installation nach dem Aufruf von »webmail-install« im funktionsfähigen Zustand. Es besteht keine Notwendigkeit, die Basiseinstellungen zu ändern. Man sollte nur dann abweichen, wenn die entsprechende Option in der eigenen Infrastruktur offensichtlich eine andere Einstellung benötigt. Vor allem bei der ersten Installation sollte man den eigenen Spieltrieb im Zaum halten. Dem Administrator sei an dieser Stelle nur angeraten, das weiter oben erzeugte »static« -Verzeichnis auch wirklich zum Caching von CSS und Javascript zu nutzen. Standardmäßig ist dieses Feature deaktiviert, um Fehler zu vermeiden, falls das Verzeichnis für den Webserver nicht beschreibbar ist. Dazu genügt es, der Karteikarte »Cache System« das »Css Caching« , »Javascript Caching« und »Theme caching« mit den angebotenen Standardoptionen zu aktivieren. Die webbasierte Konfigurationsmöglichkeit dient dazu, die zentrale »conf.php« -Datei unter »/var/www/webmail/config« und den »conf.php« -Konfigurationsdateien der Applikationen unter »/var/www/webmail/{imp,ingo,kronolith,mnemo,nag,turba}/config« festzulegen. Jedes dieser Konfigurationsverzeichnisse beherbergt noch einmal eine Reihe spezialisierter, in PHP geschriebener Konfigurationsdateien, die eine Vielzahl an Tuning-Möglichkeiten bieten. An dieser Stelle sei nur auf die Dokumentation in den Dateien selbst verwiesen, denn alles andere würde den Rahmen sprengen.

Abbildung 2: Horde bietet schon in der web-basierten Konfiguration eine ganze Reihe Optionen.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019