Wollmilchsau Server: 8. Horde PHP Framework
Kapitelübersicht:
Unter www.horde.org findet sich eine
Sammlung von Programmprojekten. Allen
gemeinsam ist das Horde-Framework, eine gemeinsame PHP-Funktionsbibliothek, auf
die die einzelnen Programme wie IMP und TURBA zugreifen. An dieser Stelle muss ich den Programmierern ein großes Lob widmen: Die früheren Dokumentationen waren eher abschreckend. Dies hat sich enorm verbessert: Die Datei INSTALL beschreibt kurz, bündig und brauchbar, was zur Installation zu tun ist.
8.1. Vor der Installation
Zunächst prüfen Sie bitte, ob die notwendigen Installationsressourcen
vorhanden sind.
Prüfen Sie bei der Installation des Apache-Webservers:
- mod_ssl mit Einkompilieren macht Sinn (Mail/Passwd verschlüsselt übertragen)
- Natürlich muss PHP4.1.x vorhanden sein.
- In der httpd.conf muss eingetragen sein:
AddType application/x-httpd-php .php DirectoryIndex index.html index.php
Wenn Sie den Apache nach diesem Text installiert haben, ist das bereits der Fall.
Prüfen Sie bei der PHP-Installation
- Version 4.1.0 oder größer
- --with-apxs oder --with-apache (Einbindung als Modul oder direkt)
- --with-gettext
- --with-xml
- Eine Datenbank (--with-mysql empfohlen, --with-pgsql oder --with-oracle ebenfalls möglich. Wenn Maileinstellungen in LDAP gespeichert werden sollen, --with-ldap) Eine Speicherung der Preferences in PHP-Sessions ist möglich, dazu wird keine externe Software benötigt. Sie ist jedoch nicht Session-übergreifend.
- --with-imap
Die c-client-Library von UW-IMAP wird von IMP benötigt, um den Zugriff auf IMAP und POP3 zu realisieren.
Prüfen Sie in der Systeminstallation:
- Sendmail API (enthalten in Sendmail, postfix, exim, qmail und anderen), dies ist Voraussetzung für IMP
8.2. Installation des Horde-Framework
Wie alle Horde-Programme ist das Framework komplett in PHP erstellt. Es gibt
also keine Installation im eigentlichen Sinne, es werden lediglich Dateien
kopiert und Parameter gesetzt.
Die einzige Voraussetzung ist ein Verzeichnis, auf das der Webserver Zugriff
hat.
Folgende Schritte sind zur Installation durchzuführen
- Entpacken Sie das tar-File in ein leeres Verzeichnis.
- Legen Sie unter /data/httpd/htdocs das Verzeichnis "horde" an. Sie können natürlich in anderes Verzeichnis benutzen, solange der Webserver entsprechend angepasst wird.
- Kopieren Sie alle Dateien und Verzeichnisse aus dem
Installationsverzeichnis mit
cp -R * /data/httpd/htdocs/horde/
Sie können die Dateien natürlich auch direkt dorthin entpacken. - Setzen Sie die Verzeichnisse und Dateien auf die User- und Gruppenkennung des Webservers.
Horde ist dann in dem entsprechenden Verzeichnis im Webserver zu finden. (Bei Installation nach /data/htdocs/horde also unter http://your.server.here/horde)
8.3. Datenbank-Table anlegen in MySQL
Um Horde mit MySQL verwenden zu können, müssen eine entsprechende Datenbank und Tables angelegt werden. Im Verzeichnis scripts/db finden sich einige Scripte wie z.B. mysql_create.db. Öffnen Sie diese Datei und passen Sie das Kennwort für die Horde-Datenbank an Ihre Wünsche an. Ein Auszug aus der Datei:
CONNECT mysql;
REPLACE INTO user (host, user, password)
VALUES (
'localhost',
'horde',
-- IMPORTANT: Change this password!
password('geheim')
);
Sie nehmen natürlich nicht "geheim" als Kennwort, oder...?
Danach führen Sie das Script aus mit
/usr/local/mysql/bin/mysql -u root -p < mysql_create.sqlUm Irrtümern vorzubeugen: Als Password benötigen Sie nicht das im mysql_create-Script vergebene Password, die Horde-Datenbank existiert noch nicht. Sie müssen den Benutzernamen und das Kennwort des SQL-Verwalters angeben.
8.4. Konfiguration des Horde-Framework
Das Framework besitzt eine Reihe von Konfigurationsdateien. Dabei handelt es sich um PHP-Programme, in denen schlicht Parameter gesetzt werden. Dies macht die Konfiguration vergleichsweise einfach und schnell. Das Format der Konfigurationsdateien ist in allen Dateien erklärt.
- Wechseln Sie in das Verzeichnis horde/config/
- Kopieren Sie alle Dateien um, die am Ende ein "dist" besitzen. Diese
Endung muss entfernt werden. Es empfiehlt sich, das Original nicht zu verändern
oder zu löschen, sondern es als Referenz zu behalten:
for foo in *.dist; do cp $foo $(basename $foo .dist); done
Diese Zeile erledigt das für alle betroffenen Dateien in einem Rutsch.
Für eine Minimalkonfiguration müssen mindestens die "Preference System Setting" in horde.php ausgefüllt werden Auch hier ein Datei-Auszug:
| horde.php |
/** ** Preference System Settings **/ /* What preferences driver should we use? Valid values are 'none' * (meaning use system defaults and don't save any user preferences), * 'session' (preferences only persist during the login), 'ldap', * and 'sql'. */ $conf['prefs']['driver'] = 'sql'; /* Treiber geändert von none auf sql */ /* Any parameters that the preferences driver needs. This includes * database or ldap server, username/password to connect with, etc. */ $conf['prefs']['params'] = array(); /* This is an example configuration for a MySQL preference backend. * Be sure to set the prefs driver to 'sql' above if you use this * configuration. */ $conf['prefs']['params']['phptype'] = 'mysql'; $conf['prefs']['params']['hostspec'] = 'localhost'; $conf['prefs']['params']['username'] = 'horde'; $conf['prefs']['params']['password'] = 'geheim'; $conf['prefs']['params']['database'] = 'horde'; $conf['prefs']['params']['table'] = 'horde_prefs'; /* entkommentiert+ password angepasst */ |
Alle anderen Dateien müssen nur geändert werden, wenn das Verhalten oder das Erscheinungsbild geändert werden sollen. Ein Sonderfall ist die Datei registry.php. In dieser Datei wird dem Horde-Framwork mitgeteilt, welche Einstellungen für welches der Horde-Programme vorzunehmen ist. Die Einstellungen sind bei den einzelnen Applikationen (IMP usw.) im INSTALL-File erläutert.
8.5. Absicherung
Es gibt einige Punkte, die bei einem produktiven System, mehr noch bei einem System mit Internet-Zugriff, beachtet werden sollten. In den Dateien in horde/config sind die Kennworte für den Zugang zur Verwaltungsdatenbank des gesamten horde-Frameworks enthalten. Sie sollten mindestens die mit installierten .htaccess-Dateien verwenden, um einen Zugriff nicht befugter Benutzer zu unterbinden. Testen Sie, ob der Apache entsprechend konfiguriert ist, diese .htacces-Dateien auch nutzt und die config-Dateien tatsächlich nicht zugänglich sind.
Eine Alternative ist die Verwendung entsprechender Zugriffsrechte.
Wenn PHP keine Datenbank, sondern eine Session-Speicherung von Preferences verwendet, werden die Daten inkl. Password in Dateien abgelegt. PHP sollte so konfiguriert werden, dass User keinen Zugang zu diesen Dateien haben. (Das Verzeichnis darf nur für den Webserver les- bzw schreibbar sein.). Alternativ kann PHP auch mit "mm" von Ralf Engelsschall konfiguriert werden (siehe entspr. Scriptseiten). Dies setzt bei vielen Usern allerdings auch viel RAM voraus.
8.6. Funktionstest
Dem Horde-Framework kommt eine zentrale Position für alle Horde-Programme zu. Eine einwandfreie Funktion ist daher elementar wichtig. Die Programmierer haben entsprechend vorgesorgt und ein Prüfprogramm beigepackt, mit dem sich die Funktionalität der Installation testen lässt. Starten Sie hierzu von einem Browser - bevorzugt auf einem anderen PC - folgende Adresse:
http://your.server.here/horde/test.php
falls installiert wie beschrieben, ansonsten mit dem von Ihnen gewählten
Pfad bzw. Namen.
Prüfen Sie folgende Punkte:
- PHP und PEAR Versionen "frisch" genug ?
- Alle notwendigen Module vorhanden?
- magic_quotes_runtime auf off gesetzt?
Damit ist das Horde Framework installiert.
8.7. Probleme
Es gibt nur wenig grundlegende Probleme bei der Installation.
Häufigste Ursache sind falsche Zugriffsrechte. Prüfen Sie, ob die Verzeichnisse
von Horde, ggf. auch von IMP und TURBA, auch Owner = wwwrun und Group = nogroup
stehen.
Eine weitere Ursache ist der fehlende Support der PHP-Installation für
bestimmte Module.
Die weitere Diagnose liefert das Testprogramm. Gehen Sie die Ausgabe durch.
Wenn nicht alle Datenbanken unterstützt werden, ist das nicht so wichtig. Hauptsache
Ihre Datenbank (hier MySQL) ist dabei. Alle anderen Parameter sollten schon
passen, sonst gibt es mit Imp oder Turba Probleme.
Falls Probleme beim Test auftreten nach dem Stil "Prüfen Sie, ob eine
aktuelle PEAR-Version vorliegt", und Sie verwenden PHP 4.2.x oder höher: Das
PEAR ist so groß geworden, dass nur noch eine Basisversion mit im PHP enthalten
ist. Sie müssen zur Zeit (PHP 4.2.x) zumindest das PEAR-PECL "Log" manuell
dazuladen. Siehe dazu http://pear.php.net.
Anmerkungen zu diesem Artikel
Eigene Anmerkung eintragen