Inhaltsverzeichnis
Horde4 - Turba
Horde Groupware ist eine freie, für den professionellen Einsatz, Browser basierte Kommunikationsanwendung. Benutzer können e-Mails lesen, versenden und verwalten. Es können gemeinsam genutzte Kalender, Kontakte, Aufgaben und Notizen mit Standard Komponenten des Horde-Projekts realisiert werden.
Turba ist der Horde-Kontaktmanager (Adressbuch).
HINWEIS - Die Original Installationsanleitung des Horde-Projekts ist unter nachfolgendem externen Link zu finden:
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Installation
WICHTIG - Eine Installation der Anwendung Horde4 - Turba kann nur mir einem funktionierenden Horde-Framework in der Version 4 durchgeführt werden.
HINWEIS - Die Durchführung einer Installation des Horde-Framework in der Version 4 kann unter nachfolgenden internen Link, innerhalb dieses Dokiwikis nachgelesen werden:
Die Installation des Horde4 - Turba, und allen Abhängigkeiten, die automatisch von PEAR aufgelöst werden sollten, kann mit nachfolgendem Befehl durchgeführt werden.
Es sollen hier alle, auch optionalen Abhängigkeiten installiert werden, jedoch ohne die binären PECL-Pakete, welche kompiliert werden müssten. Dazu sind die Optionen -a
und -B
notwendig. Die Option -f
ist der Befehl für force
und führt die notwendigen Installationen auf jeden Fall durch.
HIWNEIS - Dieser Vorgang kann einige Minuten in Anspruch nehmen und ggf. länger andauern!
# pear install -a -B -f horde/turba downloading turba-3.0.11.tgz ... Starting to download turba-3.0.11.tgz (2,074,676 bytes) ......done: 2,074,676 bytes install ok: channel://pear.horde.org/turba-3.0.11
Konfiguration: Allgemein
Als erstes gilt es die Konfigurationsdateien im Verzeichnis /var/www/horde4/turba/config
, welche die Endung *.dist haben zu kopieren und umzubenennen, was mit nachfolgendem Befehlen durchgeführt werden kann:
# cd /var/www/horde4/turba/config # for f in *.dist; do cp -a $f `basename $f .dist`; done
Zuletzt sollte noch eine leere Sicherungsdatei der Konfigurationsdatei
/var/www/horde4/turba/config/conf.php
angelegt werden, was mit nachfolgendem Befehl erledigt werden kann:
# touch /var/www/horde4/turba/config/conf.bak.php
Danach müssen die Besitz- und Dateirechte für das Verzeichnis
/var/www/horde4/turba/config
mit nachfolgendem Befehl so angepasst werden, das der Benutzer unter dem der Apache HTTP Webserver entsprechende Rechte hat. Zunächst die Besitzrechte:
# chown -R root:apache /var/www/horde4/turba/config
und die Dateirechte
# chmod -R g+w /var/www/horde4/turba/config
Konfiguration: Turba
Schritt 1
Es sollte ein Aufruf von Horde über die URL
durchgeführt werden, welcher nachfolgenden Bildschirm zeigen sollte (verkleinerte Darstellung):
Schritt 2
Ausführen eines Klicks mit der [linken Maus]-Taste auf den im linken Bereich dargestellten
- Menüpunkt: Administration
und anschließend auf den
- Menüpunkt: Konfiguration,
so dass nachfolgende Darstellung im Browser erscheinen sollte:
Schritt 3
Um die benötigten Datenbank-Tabellen anzulegen, kann nun ein Klick mit der [linken Maus]-Taste auf die
- Schaltfläche: Alle DB-Schemas aktualisieren
dies durchführen.
Schritt 4
Anschließend sollte nun ein Klick mit der [linken Maus]-Taste auf den im Hauptfenster befindlichen, als Link verfügbaren
- Menüpunkt: Adressbuch (turba) 3.0.11
ausgeführt werden, worauf alle verfügbaren Konfigurationspunkte der Anwendung Horde - Turba sichtbar werden.
HINWEIS - Bitte führen Sie die für Ihre Installation passenden Änderungen durch!
HINWEIS - Eine lauffähige Konfiguration von Horde - Turba kann auch ohne Veränderungen der Konfiguration (Standardvorgaben) durch einen Klick mit der [linken Maus]-Taste auf die
- Schaltfläche: Adressbuch-Konfiguration erzeugen
erstellt werden!
Abschließend sollte nachfolgend dargestellter Bildschirm erscheinen:
Konfiguration: Backend
Damit Horde - Turba die Verwaltung von Adressdaten übernehmen kann, ist es zusätzlich erforderlich das sogenannte „Backend“, hier z.B. einen MySQL Server zu definieren.
WICHTIG - Ohne definiertes „Backend“ ist die Funktionalität von Horde - Turba NICHT gegeben !!!
Die Konfiguration eines „Backend“ erfolgt NICHT über die Web-Anwendung, sondern ist in nachfolgend genannter Konfigurationsdatei hinterlegt:
/var/www/horde4/turba/config/backends.php
Von dieser Konfigurationsdatei kann mit nachfolgendem Befehl eine Kopie angefertigt werden, in der dann die tatsächliche Konfiguration statt finden kann:
# cp -a /var/www/horde4/turba/config/backends.php /var/www/horde4/turba/config/backends.local.php
Nachfolgend dargestelltes Beispiel ist für eine Anbindung eines MySQL Server an Horde - Turba:
/* Tachtler configurations: */ $cfgSources['localsql'] = array( // ENABLED by default 'disabled' => false, // Tachtler // default: 'title' => _("Shared Address Books"), 'title' => _("Gemeinsames Adressbuch"), 'type' => 'sql', 'params' => array( // The default connection details are pulled from the Horde-wide SQL // connection configuration. // To use another DB connection, you must provide configuration // information here - for example, //'sql' => array( // 'persistent' => false, // 'username' => 'horde', // 'password' => 'secret', // 'socket' => '/var/run/mysqld/mysqld.sock', // 'protocol' => 'unix', // 'database' => 'horde', // 'charset' => 'utf-8', // 'ssl' => false, // 'splitread' => false, // 'phptype' => 'mysql' //), 'table' => 'turba_objects' ), 'map' => array( '__key' => 'object_id', '__owner' => 'owner_id', '__type' => 'object_type', '__members' => 'object_members', '__uid' => 'object_uid', 'firstname' => 'object_firstname', 'lastname' => 'object_lastname', 'middlenames' => 'object_middlenames', 'namePrefix' => 'object_nameprefix', 'nameSuffix' => 'object_namesuffix', 'name' => array('fields' => array('namePrefix', 'firstname', 'middlenames', 'lastname', 'nameSuffix'), 'format' => '%s %s %s %s %s', 'parse' => array( array('fields' => array('firstname', 'middlenames', 'lastname'), 'format' => '%s %s %s'), array('fields' => array('firstname', 'lastname'), 'format' => '%s %s'))), // This is a shorter version of a "name" composite field which only // consists of the first name and last name. // 'name' => array('fields' => array('firstname', 'lastname'), // 'format' => '%s %s'), 'alias' => 'object_alias', 'birthday' => 'object_bday', 'anniversary' => 'object_anniversary', 'spouse' => 'object_spouse', 'photo' => 'object_photo', 'phototype' => 'object_phototype', 'homeStreet' => 'object_homestreet', 'homePOBox' => 'object_homepob', 'homeCity' => 'object_homecity', 'homeProvince' => 'object_homeprovince', 'homePostalCode' => 'object_homepostalcode', 'homeCountry' => 'object_homecountry', 'homeAddress' => array('fields' => array('homeStreet', 'homeCity', 'homeProvince', 'homePostalCode'), 'format' => "%s \n %s, %s %s"), 'workStreet' => 'object_workstreet', 'workPOBox' => 'object_workpob', 'workCity' => 'object_workcity', 'workProvince' => 'object_workprovince', 'workPostalCode' => 'object_workpostalcode', 'workCountry' => 'object_workcountry', 'workAddress' => array('fields' => array('workStreet', 'workCity', 'workProvince', 'workPostalCode'), 'format' => "%s \n %s, %s %s"), 'department' => 'object_department', 'timezone' => 'object_tz', 'email' => 'object_email', 'homePhone' => 'object_homephone', 'homeFax' => 'object_homefax', 'workPhone' => 'object_workphone', 'cellPhone' => 'object_cellphone', 'assistPhone' => 'object_assistantphone', 'fax' => 'object_fax', 'pager' => 'object_pager', 'title' => 'object_title', 'role' => 'object_role', 'company' => 'object_company', 'logo' => 'object_logo', 'logotype' => 'object_logotype', 'category' => 'object_category', 'notes' => 'object_notes', 'website' => 'object_url', 'freebusyUrl' => 'object_freebusyurl', 'pgpPublicKey' => 'object_pgppublickey', 'smimePublicKey' => 'object_smimepublickey', 'imaddress' => 'object_imaddress', 'imaddress2' => 'object_imaddress2', 'imaddress3' => 'object_imaddress3' ), 'tabs' => array( _("Personal") => array('firstname', 'lastname', 'middlenames', 'namePrefix', 'nameSuffix', 'name', 'alias', 'birthday', 'spouse', 'anniversary', 'photo'), _("Location") => array('homeStreet', 'homePOBox', 'homeCity', 'homeProvince', 'homePostalCode', 'homeCountry', 'homeAddress', 'workStreet', 'workPOBox', 'workCity', 'workProvince', 'workPostalCode', 'workCountry', 'workAddress', 'timezone'), _("Communications") => array('email', 'homePhone', 'workPhone', 'assistPhone', 'homeFax', 'cellPhone', 'fax', 'pager', 'imaddress', 'imaddress2', 'imaddress3'), _("Organization") => array('title', 'role', 'company', 'department', 'logo'), _("Other") => array('category', 'notes', 'website', 'freebusyUrl', 'pgpPublicKey', 'smimePublicKey'), ), 'search' => array( 'name', 'email' ), 'strict' => array( 'object_id', 'owner_id', 'object_type', ), 'export' => true, 'browse' => true, 'use_shares' => true, 'list_name_field' => 'lastname', 'alternative_name' => 'company', );