Dies ist eine alte Version des Dokuments!


Basiskonfiguration des Frameworks Horde 5 unter CentOS 7.x

Nach der erfolgreichen Installation von Horde machen wir uns nun an die Konfiguration unserer Installation.

Ein Großteil der Benutzer-Konfigurationsdaten werden in einer mySQL-Datenbank gespeichert und vorgehalten.

Diese mySQL-Datenbank und der zugehörige Datenbankuser werden wird nun im ersten Schritt anlegen.

Wir melden uns also als berechtigter Datenbankuser an der mySQL-Datenbank an.

  # mysql -h mysql.dmz.nausch.org -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 217075
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Dort legen wir als aller erst einmal eine Datenbank mit dem Namen horde an.

 mysql> create database horde5;
 Query OK, 1 row affected (0.00 sec)

Anschließend legen wir uns einen Datenbankuser an, denen wir entsprechende Rechte an der, gerade angelegten Datenbank horde einräumen. Als Namen nehme wir einfach hode_admin_user.

 mysql> CREATE USER 'horde_admin_user'@'10.0.0.97' IDENTIFIED BY 'rbgsDK39DeM2b2btx9iMHfzd';
 Query OK, 0 rows affected (0.00 sec)

und

 mysql> CREATE USER 'horde_admin_user'@'vml000097.dmz.nausch.org' IDENTIFIED BY 'rbgsDK39DeM2b2btx9iMHfzd';
 Query OK, 0 rows affected (0.00 sec)

Dem gerade angelebtem Datenbankuser für Horde gewähren wir nun die nötigen Rechte, damit dieser vom Webserver aus, Tabellen anlegen, befüllen und verändern darf.

 mysql> GRANT ALL PRIVILEGES ON horde5.* TO 'horde_admin_user'@'10.0.0.97' IDENTIFIED BY 'rbgsDKMS39DeM2b2btx9iMHfzd' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
 Query OK, 0 rows affected (0.00 sec)

und

 mysql> GRANT ALL PRIVILEGES ON horde5.* TO 'horde_admin_user'@'vml000097.dmz.nausch.org' IDENTIFIED BY 'rbgsDKMS39DeM2b2btx9iMHfzd' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
 Query OK, 0 rows affected (0.00 sec) 

Zum Ende unserer mySQL-Userkonfiguration weisen wir unserem Nutzer die Berechtigungen zu.

 mysql> FLUSH PRIVILEGES;
 Query OK, 0 rows affected (0.00 sec)

Wir können uns nun vom Datenbank-Server wieder abmelden.

 mysql> quit
 Bye

Als nächstes überprüfen wir, ob der zuvor angelegt User/Zugang vom WEB-Server aus auch funktioniert.

   # mysql -D horde5 -h mysql.dmz.nausch.org -u horde_admin_user -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 217265
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [horde5]>

Die Verbindung klappt schon mal, daher lassen wir uns mal ansehen, welche Datenbanken der administrative Horde-User sehen kann.

MySQL [horde5]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| horde5             |
+--------------------+
2 rows in set (0.01 sec)

MySQL [horde5]>

Auch dieser Test fiel positiv aus, wir können uns daher die Verbindung zum Datenbank-Server beenden und uns der weiteren konfiguration widmen.

 MySQL [horde5]> quit
 Bye

Die Konfiguration von Horde, wie auch den nachfolgenden Module/Projects, erfolgt über die GUI des Horde-Framworks. Bevor wir uns daran machen können, benötigen wir noch eine entsprechende (leere) Backupdatei für die mitgelieferte Vorgabekonfigurationsdatei. Ferner müssen wir dafür sorgen, dass unser Apache-Webserver die Änderungen im Konfigurationsverzeichnis ablegen kann.

Zunächst legen wir uns die besagte Backup-Datei für die Konfiguration an.

 # touch /usr/share/horde/config/conf.php.bak

Dann weisen wir noch die Datei und Besitzrechte für die Konfigurationsdatei- und dessen Verzeichnis zu.

 # chown -R root:apache /usr/share/horde/config
 # chmod g+w -R /usr/share/horde/config

Die eigentliche Konfigurationsarbeit erledigen wir dann über die GUI des Web-Frameworks. Dazu rufen wir unseren angelegten VHOST im Webbrowser auf.

 $ firefox https://horde.sec-mail.guru

Bild:Bildschirmhardcopy Horde "Erstanmeldung"

Mit einem Klick auf das Zahnradsysmbol Bild: Horde Menüpunkt Administration erreichen wir den Menüpunkt Administration.

Bild: Bildschirmhardcopy Horde "Menüpunkt Administration"

Hier wählen wir den Menüpunkt Configuration aus.

Bild: Bildschirmhardcopy Horde "Configuration"

Da wir den Menüpukt Configuration noch nie vorher aufgerufen und noch keine Konfiguration vorgenommen haben, sind die beiden Fehlermeldungen normal. Um zur Konfiguration von Horde zu gelangen, klicken wir nun auf den Punkt Horde (horde).

Bild: Bildschirmhardcopy Horde "Configuration"

Auf den nun zur Verfügung stehenden Reitern, erfolgt die Konfiguration des Horde-Frameworks (Basis-Modul).

General Horde Settings

$conf[vhosts]                                                   [ ]

PHP Settings

$conf[debug_level]                                              E_ALL & ~E_NOTICE
$conf[max_exec_time]                                            0
$conf[compress_pages]                                           [✔]
$conf[secret_key] 	                                        54116806-935c-4e4f-9c1e-58ef0a000054
$conf[umask]                                                    077
$conf[testdisable]                                              [✔]
$conf[tmpdir]

URL Settings

$conf[use_ssl]                                                  Attempt to auto-detect, and generate URLs appropriately
$conf[server][name]                                             $_SERVER['SERVER_NAME']
$conf[server][port]
$conf[urls][token_lifetime]                                     30
$conf[urls][hmac_lifetime                                       30
$conf[urls][pretty]                                             No (Get-based URLs)
$conf[safe_ips]

Session Settings

$conf[session][name]                                            Horde
$conf[session][use_only_cookies]                                [✔]
$conf[session][cache_limiter]                                   nocache
$conf[session][timeout]                                         0
$conf[session][max_time]                                        7200
$conf[cookie][domain]                                           $_SERVER['SERVER_NAME']
$conf[cookie][path]                                             /

Database Settings

$conf[sql][phptype]                                             MySQL (mysqli)
$conf[sql][username]                                            horde_admin_user
$conf[sql][password]                                            rbgsDK39DeM2b2btx9iMHfzd
$conf[sql][protocol]                                            TCP/IP
$conf[sql][hostspec]                                            mysql.dmz.nausch.org
$conf[sql][port]                                                3306
$conf[sql][database]                                            horde5
$conf[sql][charset]                                             utf-8
$conf[sql][ssl]                                                 [ ]
$conf[sql][ca]
$conf[sql][splitread]                                           Disabled

NoSQL Database Settings

$conf[nosql][phptype]                                           [None]

Klicken wir nun auf die Schaltfläche Bild: Schaltfläche Generate Horde Configuration, fällt uns eine Fehlermeldung entgegen!

Bild: Bildschirmhardcopy Horde "Configuration"

Den Fehler beheben wir durch den Aufruf des Programms horde-db-migrate.

 # horde-db-migrate
[  INFO  ] Migrating DB up.
[  INFO  ] Current Horde_Alarm schema version: 0
Migrating to HordeAlarmsTable (1)
== 1 HordeAlarmsTable: migrating ==============================================
-- tables()
   -> 0.0008s
-- createTable('horde_alarms')
   -> 0.0000s
-- addIndex('horde_alarms', array(0 => 'alarm_id'))
   -> 0.1807s
-- addIndex('horde_alarms', array(0 => 'alarm_uid'))
   -> 0.1089s
-- addIndex('horde_alarms', array(0 => 'alarm_start'))
   -> 0.1266s
-- addIndex('horde_alarms', array(0 => 'alarm_end'))
   -> 0.1108s
-- addIndex('horde_alarms', array(0 => 'alarm_snooze'))
   -> 0.1103s
-- addIndex('horde_alarms', array(0 => 'alarm_dismissed'))
   -> 0.1146s
== 1 HordeAlarmsTable: migrated (0.8027s) =====================================

Migrating to HordeAlarmsAddInstanceId (2)
== 2 HordeAlarmsAddInstanceId: migrating ======================================
-- addColumn('horde_alarms', 'alarm_instanceid', 'string', array('limit' => 255))
   -> 0.1053s
== 2 HordeAlarmsAddInstanceId: migrated (0.1055s) =============================

[  INFO  ] Ending Horde_Alarm schema version: 2
[  INFO  ] Current Horde_Auth schema version: 0
Migrating to HordeAuthBaseTables (1)
== 1 HordeAuthBaseTables: migrating ===========================================
-- tables()
   -> 0.0007s
-- createTable('horde_users', array('autoincrementKey' => array (
  0 => 'user_uid',
)))
   -> 0.0000s
== 1 HordeAuthBaseTables: migrated (0.0511s) ==================================

[  INFO  ] Ending Horde_Auth schema version: 1
[  INFO  ] Current Horde_Cache schema version: 0
Migrating to HordeCacheBaseTables (1)
== 1 HordeCacheBaseTables: migrating ==========================================
-- tables()
   -> 0.0009s
-- createTable('horde_cache', array('autoincrementKey' => array (
  0 => 'cache_id',
)))
   -> 0.0000s
== 1 HordeCacheBaseTables: migrated (0.0569s) =================================

Migrating to HordeCacheFixBlobLength (2)
== 2 HordeCacheFixBlobLength: migrating =======================================
-- changeColumn('horde_cache', 'cache_data', 'binary')
   -> 0.1312s
== 2 HordeCacheFixBlobLength: migrated (0.1313s) ==============================

[  INFO  ] Ending Horde_Cache schema version: 2
[  INFO  ] Current Horde_Dav schema version: 0
Migrating to HordeDavBaseTables (1)
== 1 HordeDavBaseTables: migrating ============================================
-- createTable('horde_dav_objects', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_dav_objects', 'id_collection')
   -> 0.1332s
-- addIndex('horde_dav_objects', 'id_internal', array('unique' => true))
   -> 0.1684s
-- addIndex('horde_dav_objects', 'id_external', array('unique' => true))
   -> 0.1265s
-- createTable('horde_dav_collections', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_dav_collections', 'id_interface')
   -> 0.1188s
-- addIndex('horde_dav_collections', 'id_internal')
   -> 0.1145s
-- addIndex('horde_dav_collections', 'id_external', array('unique' => true))
   -> 0.1085s
== 1 HordeDavBaseTables: migrated (0.8751s) ===================================

Migrating to HordeDavRemoveUniqueIndex (2)
== 2 HordeDavRemoveUniqueIndex: migrating =====================================
-- removeIndex('horde_dav_objects', 'id_external')
   -> 0.1032s
-- addIndex('horde_dav_objects', 'id_external')
   -> 0.1025s
-- addIndex('horde_dav_objects', array(0 => 'id_external', 1 => 'id_collection'), array('unique' => true))
   -> 0.1687s
== 2 HordeDavRemoveUniqueIndex: migrated (0.3748s) ============================

[  INFO  ] Ending Horde_Dav schema version: 2
[  INFO  ] Current Horde_Group schema version: 0
Migrating to HordeGroupBaseTables (1)
== 1 HordeGroupBaseTables: migrating ==========================================
-- tables()
   -> 0.0019s
-- createTable('horde_groups', array('autoincrementKey' => array (
  0 => 'group_uid',
)))
   -> 0.0000s
-- addIndex('horde_groups', array(0 => 'group_name'), array('unique' => true))
   -> 0.1211s
-- tables()
   -> 0.0010s
-- createTable('horde_groups_members', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_groups_members', array(0 => 'group_uid'))
   -> 0.1148s
-- addIndex('horde_groups_members', array(0 => 'user_uid'))
   -> 0.1205s
== 1 HordeGroupBaseTables: migrated (0.4680s) =================================

Migrating to HordeGroupUpgradeAutoIncrement (2)
== 2 HordeGroupUpgradeAutoIncrement: migrating ================================
-- changeColumn('horde_groups', 'group_uid', 'autoincrementKey')
   -> 0.1123s
-- dropTable('horde_groups_seq')
== 2 HordeGroupUpgradeAutoIncrement: migrated (0.1175s) =======================

Migrating to HordeGroupUpgradeNullParents (3)
== 3 HordeGroupUpgradeNullParents: migrating ==================================
-- changeColumn('horde_groups', 'group_parents', 'string', array('limit' => 255))
   -> 0.1132s
== 3 HordeGroupUpgradeNullParents: migrated (0.1134s) =========================

[  INFO  ] Ending Horde_Group schema version: 3
[  INFO  ] Current Horde_History schema version: 0
Migrating to HordeHistoryBaseTables (1)
== 1 HordeHistoryBaseTables: migrating ========================================
-- tables()
   -> 0.0010s
-- createTable('horde_histories', array('autoincrementKey' => array (
  0 => 'history_id',
)))
   -> 0.0000s
-- addIndex('horde_histories', array(0 => 'history_action'))
   -> 0.1448s
-- addIndex('horde_histories', array(0 => 'history_ts'))
   -> 0.1576s
-- addIndex('horde_histories', array(0 => 'object_uid'))
   -> 0.1147s
== 1 HordeHistoryBaseTables: migrated (0.4715s) ===============================

Migrating to HordeHistoryUpgradeAutoIncrement (2)
== 2 HordeHistoryUpgradeAutoIncrement: migrating ==============================
-- changeColumn('horde_histories', 'history_id', 'autoincrementKey')
   -> 0.1255s
-- dropTable('horde_histories_seq')
== 2 HordeHistoryUpgradeAutoIncrement: migrated (0.1273s) =====================

Migrating to HordeHistoryAddModSeq (3)
== 3 HordeHistoryAddModSeq: migrating =========================================
-- createTable('horde_histories_modseq', array('autoincrementKey' => false))
   -> 0.0000s
-- addColumn('horde_histories', 'history_modseq', 'integer', array('default' => 0, 'null' => false))
   -> 0.1267s
-- selectAll('SELECT history_id FROM horde_histories ORDER BY history_ts ASC')
   -> 0.0008s
-- beginDbTransaction()
   -> 0.0005s
-- commitDbTransaction()
   -> 0.0005s
-- addIndex('horde_histories', array(0 => 'history_modseq'))
   -> 0.1184s
-- changeColumn('horde_histories_modseq', 'history_modseq', 'autoincrementKey')
   -> 0.1208s
== 3 HordeHistoryAddModSeq: migrated (0.4217s) ================================

Migrating to HordeHistoryAddCompositeIndex (4)
== 4 HordeHistoryAddCompositeIndex: migrating =================================
-- addIndex('horde_histories', array(0 => 'history_modseq', 1 => 'object_uid'))
   -> 0.1854s
== 4 HordeHistoryAddCompositeIndex: migrated (0.1855s) ========================

Migrating to HordeHistoryRemoveCompositeIndex (5)
== 5 HordeHistoryRemoveCompositeIndex: migrating ==============================
-- indexes('horde_histories')
   -> 0.0030s
-- removeIndex('horde_histories', array('name' => 'index_horde_histories_on_object_uid'))
   -> 0.1204s
-- removeIndex('horde_histories', array('name' => 'index_horde_histories_on_history_modseq'))
   -> 0.1082s
== 5 HordeHistoryRemoveCompositeIndex: migrated (0.2320s) =====================

Migrating to HordeHistoryFixBotchedIndexes (6)
== 6 HordeHistoryFixBotchedIndexes: migrating =================================
-- indexes('horde_histories')
   -> 0.0013s
-- indexName('horde_histories', array('column' => array (
  0 => 'history_modseq',
  1 => 'object_uid',
)))
   -> 0.0000s
-- removeIndex('horde_histories', array('name' => 'index_horde_histories_on_history_modseq_and_object_uid'))
   -> 0.1062s
-- addIndex('horde_histories', array(0 => 'history_modseq'))
   -> 0.1159s
-- addIndex('horde_histories', array(0 => 'object_uid'))
   -> 0.1095s
== 6 HordeHistoryFixBotchedIndexes: migrated (0.3336s) ========================

[  INFO  ] Ending Horde_History schema version: 6
[  INFO  ] Current Horde_Imap_Client schema version: 0
Migrating to HordeImapClientBaseTables (1)
== 1 HordeImapClientBaseTables: migrating =====================================
-- tables()
   -> 0.0008s
-- createTable('horde_imap_client_data', array('autoincrementKey' => 'messageid'))
   -> 0.0000s
-- addIndex('horde_imap_client_data', array(0 => 'hostspec', 1 => 'mailbox', 2 => 'port', 3 => 'username'))
   -> 0.1146s
-- createTable('horde_imap_client_message', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_imap_client_message', array(0 => 'msguid', 1 => 'messageid'))
   -> 0.1211s
-- createTable('horde_imap_client_metadata', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_imap_client_metadata', array(0 => 'messageid'))
   -> 0.3064s
== 1 HordeImapClientBaseTables: migrated (0.7494s) ============================

Migrating to HordeImapClientChangeColumnName (2)
== 2 HordeImapClientChangeColumnName: migrating ===============================
-- columns('horde_imap_client_data')
   -> 0.0021s
-- columns('horde_imap_client_message')
   -> 0.0016s
-- columns('horde_imap_client_metadata')
   -> 0.0014s
== 2 HordeImapClientChangeColumnName: migrated (0.0054s) ======================

[  INFO  ] Ending Horde_Imap_Client schema version: 2
[  INFO  ] Current Horde_Lock schema version: 0
Migrating to HordeLockBaseTables (1)
== 1 HordeLockBaseTables: migrating ===========================================
-- tables()
   -> 0.0009s
-- createTable('horde_locks', array('autoincrementKey' => array (
  0 => 'lock_id',
)))
   -> 0.0000s
== 1 HordeLockBaseTables: migrated (0.0507s) ==================================

Migrating to HordeLockUpgradeColumnTypes (2)
== 2 HordeLockUpgradeColumnTypes: migrating ===================================
== 2 HordeLockUpgradeColumnTypes: migrated (0.0000s) ==========================

Migrating to HordeLockFixOwnerWidth (3)
== 3 HordeLockFixOwnerWidth: migrating ========================================
-- changeColumn('horde_locks', 'lock_owner', 'string', array('limit' => 255, 'null' => false))
   -> 0.1251s
== 3 HordeLockFixOwnerWidth: migrated (0.1253s) ===============================

[  INFO  ] Ending Horde_Lock schema version: 3
[  INFO  ] Current Horde_Perms schema version: 0
Migrating to HordePermsBaseTables (1)
== 1 HordePermsBaseTables: migrating ==========================================
-- tables()
   -> 0.0012s
-- createTable('horde_perms', array('autoincrementKey' => array (
  0 => 'perm_id',
)))
   -> 0.0000s
-- addIndex('horde_perms', array(0 => 'perm_name'), array('unique' => true))
   -> 0.1401s
== 1 HordePermsBaseTables: migrated (0.2002s) =================================

Migrating to HordePermsUpgradeAutoIncrement (2)
== 2 HordePermsUpgradeAutoIncrement: migrating ================================
-- changeColumn('horde_perms', 'perm_id', 'autoincrementKey')
   -> 0.1187s
-- dropTable('horde_perms_seq')
== 2 HordePermsUpgradeAutoIncrement: migrated (0.1235s) =======================

[  INFO  ] Ending Horde_Perms schema version: 2
[  INFO  ] Current Horde_Prefs schema version: 0
Migrating to HordePrefsBaseTables (1)
== 1 HordePrefsBaseTables: migrating ==========================================
-- tables()
   -> 0.0009s
-- createTable('horde_prefs', array('autoincrementKey' => array (
  0 => 'pref_uid',
  1 => 'pref_scope',
  2 => 'pref_name',
)))
   -> 0.0000s
-- addIndex('horde_prefs', array(0 => 'pref_uid'))
   -> 0.1133s
-- addIndex('horde_prefs', array(0 => 'pref_scope'))
   -> 0.1204s
== 1 HordePrefsBaseTables: migrated (0.2859s) =================================

Migrating to HordePrefsUpgradeBinaryValue (2)
== 2 HordePrefsUpgradeBinaryValue: migrating ==================================
-- changeColumn('horde_prefs', 'pref_value', 'binary')
   -> 0.1494s
== 2 HordePrefsUpgradeBinaryValue: migrated (0.1496s) =========================

Migrating to HordePrefsFixBlobLength (3)
== 3 HordePrefsFixBlobLength: migrating =======================================
-- changeColumn('horde_prefs', 'pref_value', 'binary')
   -> 0.1071s
== 3 HordePrefsFixBlobLength: migrated (0.1073s) ==============================

[  INFO  ] Ending Horde_Prefs schema version: 3
[  INFO  ] Current Horde_Queue schema version: 0
Migrating to HordeQueueBaseTables (1)
== 1 HordeQueueBaseTables: migrating ==========================================
-- createTable('horde_queue_tasks', array('autoincrementKey' => 'task_id'))
   -> 0.0001s
== 1 HordeQueueBaseTables: migrated (0.0600s) =================================

[  INFO  ] Ending Horde_Queue schema version: 1
[  INFO  ] Current Horde_SessionHandler schema version: 0
Migrating to HordeSessionhandlerBaseTables (1)
== 1 HordeSessionhandlerBaseTables: migrating =================================
-- tables()
   -> 0.0010s
-- createTable('horde_sessionhandler', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_sessionhandler', array(0 => 'session_lastmodified'))
   -> 0.1194s
== 1 HordeSessionhandlerBaseTables: migrated (0.1755s) ========================

Migrating to HordeSessionHandlerFixBlobLength (2)
== 2 HordeSessionHandlerFixBlobLength: migrating ==============================
-- changeColumn('horde_sessionhandler', 'session_data', 'binary')
   -> 0.1120s
== 2 HordeSessionHandlerFixBlobLength: migrated (0.1121s) =====================

[  INFO  ] Ending Horde_SessionHandler schema version: 2
[  INFO  ] Current Horde_SyncMl schema version: 0
Migrating to HordeSyncmlBaseTables (1)
== 1 HordeSyncmlBaseTables: migrating =========================================
-- tables()
   -> 0.0008s
-- createTable('horde_syncml_map', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_syncml_map', array(0 => 'syncml_syncpartner'))
   -> 0.1267s
-- addIndex('horde_syncml_map', array(0 => 'syncml_db'))
   -> 0.2100s
-- addIndex('horde_syncml_map', array(0 => 'syncml_uid'))
   -> 0.1151s
-- addIndex('horde_syncml_map', array(0 => 'syncml_cuid'))
   -> 0.2767s
-- addIndex('horde_syncml_map', array(0 => 'syncml_suid'))
   -> 0.1168s
-- tables()
   -> 0.0009s
-- createTable('horde_syncml_anchors', array('autoincrementKey' => false))
   -> 0.0000s
-- addIndex('horde_syncml_anchors', array(0 => 'syncml_syncpartner'))
   -> 0.1088s
-- addIndex('horde_syncml_anchors', array(0 => 'syncml_db'))
   -> 0.1254s
-- addIndex('horde_syncml_anchors', array(0 => 'syncml_uid'))
   -> 0.1630s
== 1 HordeSyncmlBaseTables: migrated (1.3640s) ================================

[  INFO  ] Ending Horde_SyncMl schema version: 1
[  INFO  ] Current Horde_Token schema version: 0
Migrating to HordeTokenBaseTables (1)
== 1 HordeTokenBaseTables: migrating ==========================================
-- tables()
   -> 0.0011s
-- createTable('horde_tokens', array('autoincrementKey' => array (
  0 => 'token_address',
  1 => 'token_id',
)))
   -> 0.0000s
== 1 HordeTokenBaseTables: migrated (0.0912s) =================================

[  INFO  ] Ending Horde_Token schema version: 1
[  INFO  ] Current Horde_Vfs schema version: 0
Migrating to HordeVfsBaseTables (1)
== 1 HordeVfsBaseTables: migrating ============================================
-- tables()
   -> 0.0010s
-- createTable('horde_vfs', array('autoincrementKey' => array (
  0 => 'vfs_id',
)))
   -> 0.0000s
-- addIndex('horde_vfs', array(0 => 'vfs_path'))
   -> 0.1088s
-- addIndex('horde_vfs', array(0 => 'vfs_name'))
   -> 0.1024s
-- tables()
   -> 0.0011s
-- createTable('horde_muvfs', array('autoincrementKey' => array (
  0 => 'vfs_id',
)))
   -> 0.0000s
-- addIndex('horde_muvfs', array(0 => 'vfs_path'))
   -> 0.1274s
-- addIndex('horde_muvfs', array(0 => 'vfs_name'))
   -> 0.1196s
== 1 HordeVfsBaseTables: migrated (0.5685s) ===================================

Migrating to HordeVfsUpgradeAutoIncrement (2)
== 2 HordeVfsUpgradeAutoIncrement: migrating ==================================
-- changeColumn('horde_vfs', 'vfs_id', 'autoincrementKey')
   -> 0.1675s
-- dropTable('horde_vfs_seq')
-- changeColumn('horde_muvfs', 'vfs_id', 'autoincrementKey')
   -> 0.1886s
-- dropTable('horde_muvfs_seq')
== 2 HordeVfsUpgradeAutoIncrement: migrated (0.3594s) =========================

Migrating to HordeVfsFixBlobLength (3)
== 3 HordeVfsFixBlobLength: migrating =========================================
-- changeColumn('horde_vfs', 'vfs_data', 'binary')
   -> 0.1130s
-- changeColumn('horde_muvfs', 'vfs_data', 'binary')
   -> 0.1205s
== 3 HordeVfsFixBlobLength: migrated (0.2338s) ================================

Migrating to HordeVfsUpgradeNullColumns (4)
== 4 HordeVfsUpgradeNullColumns: migrating ====================================
-- changeColumn('horde_vfs', 'vfs_path', 'string', array('limit' => 255, 'null' => true))
   -> 0.1310s
-- changeColumn('horde_vfs', 'vfs_owner', 'string', array('limit' => 255, 'null' => true))
   -> 0.1263s
-- changeColumn('horde_muvfs', 'vfs_path', 'string', array('limit' => 255, 'null' => true))
   -> 0.1265s
-- changeColumn('horde_muvfs', 'vfs_owner', 'string', array('limit' => 255, 'null' => true))
   -> 0.1721s
-- update('UPDATE horde_vfs SET vfs_path = NULL WHERE vfs_path = \'\'')
   -> 0.0011s
   -> 0 rows
-- update('UPDATE horde_vfs SET vfs_owner = NULL WHERE vfs_path = \'\'')
   -> 0.0008s
   -> 0 rows
-- update('UPDATE horde_muvfs SET vfs_path = NULL WHERE vfs_path = \'\'')
   -> 0.0007s
   -> 0 rows
-- update('UPDATE horde_muvfs SET vfs_owner = NULL WHERE vfs_path = \'\'')
   -> 0.0006s
   -> 0 rows
== 4 HordeVfsUpgradeNullColumns: migrated (0.5604s) ===========================

[  INFO  ] Ending Horde_Vfs schema version: 4

Rufen wir nun erneut die Konfiguration im Admin-Bereich auf, sehen wir, dass nun die Datenbanktabellen angelegt und alle den Status SQL DB schema is ready haben.

 $ firefox https://horde.sec-mail.guru/admin/config/

Bild: Bildschirmhardcopy Horde "Configuration"

Wir können nun mit der weiteren Konfiguration von Horde fortfahren, indem wir auf den Punkt Horde (horde) klicken.

LDAP Settings

$conf[ldap][useldap]                                                           [no]

Authentication Settings

$conf[auth][admins]                                                            Administrator
$conf[auth][checkip]                                                           [✔]
$conf[auth][checkbrowser]                                                      [✔]
$conf[auth][resetpassword]                                                     yes
$conf[auth][resetpassword_from]                                                
$conf[auth][alternate_login]                                                   false
$conf[auth][redirect_on_logout]                                                false
$conf[auth][list_users]                                                        Show an input field
$conf[auth][driver]                                                            Automatic authentication as a certain user
$conf[auth][params][username]                                                  Administrator
$conf[auth][params][password]
$conf[auth][params][requestuser]                                               [ ]
$conf[auth][params][count_bad_logins]                                          [ ]
$conf[auth][params][login_block]                                               [ ]
$conf[auth][params][login_block_count                                          5
$conf[auth][params][login_block_time]                                          5

Terms of Service Agreement

$conf[tos][file]

Sign Up Settings

$conf[signup][allow]                                                           No

Logging Settings

$conf[log][enabled]                                                            Yes
$conf[log][priority]                                                           INFO
$conf[log][ident]                                                              HORDE
$conf[log][time_format]
$conf[log][type]                                                               Syslog
$conf[log][name]                                                               LOG_USER
$conf[log][log_accesskeys]                                                     [ ]

Preferences Settings

$conf[prefs][maxsize]                                                          65535
$conf[prefs][driver]                                                           SQL Database
$conf[prefs][params][driverconfig]                                             Horde defaults
$conf[prefs][params][table]                                                    horde_prefs

Alarms Settings

$conf[alarms][driver]                                                          SQL Database
$conf[alarms][params][driverconfig]                                            Horde defaults
$conf[alarms][params][table]                                                   horde_alarms
$conf[alarms][params][ttl]                                                     300

Groups Settings

$conf[group][driver]                                                           SQL
$conf[group][driverconfig]                                                     Horde defaults

Permissions Settings

$conf[perms][driver]                                                           SQL
$conf[perms][driverconfig]                                                     Horde defaults

Allow Sharing?

$conf[share][no_sharing]                                                       [ ]
$conf[share][auto_create]                                                      [✔]
$conf[share][world]                                                            [✔]
$conf[share][any_group]                                                        [ ]
$conf[share][hidden]                                                           [ ]

Share Caching

$conf[share][cache]                                                            [✔]

Shares Driver

$conf[share][driver]                                                           Next-Generation SQL

Damit das Horde-Framework die caching-Daten in das Verzeichnis /usr/share/horde/static/ schreiben kann, passen wir dessen Verzeichnisrechte an!

 # chown root.apache /usr/share/horde/static/

Cache System Settings

$conf[cache][default_lifetime]                                                 86400
$conf[cache][driver]                                                           Store data in filesystem
$conf[cache][params][dir]                                                      /usr/share/horde/static
$conf[cache][params][sub]                                                      0
$conf[cache][params][prefix]                                                   cache_
$conf[cache][use_memorycache]                                                  None

CSS Caching

$conf[cachecss]                                                                Yes
$conf[cachecssparams][driver]                                                  Filesystem (recommended)
$conf[cachecssparams][filemtime]                                               [ ]
$conf[cachecssparams][lifetime]                                                86400

Javascript Caching

$conf[cachejs]                                                                 Yes
$conf[cachejsparams][driver]                                                   Filesystem (recommended)
$conf[cachejsparams][compress]                                                 Built-in compressor (Good compression, good speed)
$conf[cachejsparams][lifetime]                                                 604800

Theme Caching

$conf[cachethemes]                                                             Yes
$conf[cachethemesparams][check]                                                Application versions
$conf[cachethemesparams][lifetime]                                             604800

Locking Settings

$conf[lock][driver] 	                                                       SQL-based locking
$conf[lock][params][driverconfig]                                              Horde defaults
$conf[lock][params][table]                                                     horde_locks

Tokens Settings

$conf[token][timeout]                                                          180
$conf[token][driver]                                                           SQL-based token storage
$conf[token][params][driverconfig]                                             Horde defaults
$conf[token][params][table]                                                    horde_tokens

History Settings

$conf[history][driver]                                                         SQL-based history storage
$conf[history][params][driverconfig] 	                                         Horde defaults

DAV Settings

 $conf[davstorage][driver]                                                     SQL-based metadata storage
 $conf[davstorage][params][driverconfig]                                       Horde defaults

Mailer Settings

$conf[mailer][type]                                                            Use a SMTP server (HIGHLY RECOMMENDED)
$conf[mailer][params][host]                                                    smtp.dmz.nausch.org
$conf[mailer][params][port]                                                    25
$conf[mailer][params][localhost] 	                                       vml000097.dmz.nausch.org
$conf[mailer][params][auth]                                                    No
$conf[mailer][params][lmtp]                                                    [ ]

Virtual File Storage Settings

$conf[vfs][type]                                                               SQL database
$conf[vfs][params][driverconfig]                                               Horde defaults

Session Handler Settings

$conf[sessionhandler][type]                                                    SQL database
$conf[sessionhandler][params][driverconfig]                                    Horde defaults
$conf[sessionhandler][params][table]                                           horde_sessionhandler
$conf[sessionhandler][memcache] 	                                       [ ]

HTTP Proxy Settings

$conf[http][proxy][proxy_host]
$conf[http][proxy][proxy_port]
$conf[http][proxy][proxy_user]
$conf[http][proxy][proxy_pass]
$conf[spell][driver]                                                           aspell (command line)
$conf[spell][params][path]                                                     /usr/bin/aspell

GnuPG Settings

$conf[gnupg][path]                                                             /usr/bin/gpg
$conf[gnupg][keyserver]                                                        keyserver.nausch.org, pool.sks-keyservers.net, subkeys.pgp.net, pgp.mit.edu
$conf[gnupg][timeout]                                                          10

OpenSSL Settings

$conf[openssl][cafile]                                                         /etc/pki/tls/certs/ca-bundle.crt
$conf[openssl][path]                                                           /usr/bin/openssl

Theme Settings

$conf[nobase64_img]                                                            [ ]

Image Manipulation Settings

$conf[image][driver] 	                                                       The PECL Imagick Library (recommended)

Image Metadata Driver Settings

$conf[exif][driver]                                                          Bundled implementation in PHP

MIME Detection Settings

$conf[mime][magic_db]                                                        /usr/share/misc/magic

Country Lookup Settings

$conf[geoip][datafile]                                                       /usr/share/GeoIP/GeoIP.dat

Timezone Lookup Settings

$conf[timezone][location]                                                     ftp://ftp.iana.org/tz/tzdata-latest.tar.gz

Problem Reporting Settings

$conf[problems][tickets]                                                      No
$conf[problems][email]                                                        webmaster@nausch.org
$conf[problems][maildomain]                                                   nausch.org
$conf[problems][username]
$conf[problems][password]
$conf[problems][attachments]                                                  [✔]
$conf[menu][links][help]                                                      All users
$conf[menu][links][prefs]                                                     Authenticated users
$conf[menu][links][problem]                                                   All users
$conf[menu][links][login]                                                     All users
$conf[menu][links][logout]                                                    Authenticated users

Portal Blocks Settings

$conf[portal][fixed_blocks] 	                                              

Fortune Configuration

$conf[fortune][exec_path] 

Account Info Configuration

$conf[accounts][driver]                                                       None

User Capabilities and Constraints

$conf[user][verify_from_addr]                                                 [ ]
$conf[user][select_view]                                                      Yes

API Keys Settings

$conf[api][googlemaps]
$conf[api][googlesafebrowsing]
$conf[api][googlesearch] 	
$conf[api][yahoomaps]
$conf[api][cloudmade]
$conf[api][bing]

Facebook Integration Settings

$conf[facebook][enabled] 	                                              Disabled

Twitter Integration Settings

$conf[twitter][enabled]  	                                              Disabled

Url Shortening

$conf[urlshortener]                                                           TinyUrl

Weather Services

$conf[weather][provider]                                                      None

IMAP Server Settings

$conf[imap][enabled]                                                          Disabled

IMSP Server Settings

$conf[imsp][enabled]                                                          Disabled

Kolab Server Settings

$conf[kolab][enabled]                                                         Disabled
$conf[hashtable][driver]                                                      None
$conf[activesync][enabled]                                                    Enabled

Storage

$conf[activesync][storage]                                                    SQL Database	
$conf[activesync] [params][driverconfig]                                      Horde defaults       

Capabilities

$conf[activesync][emailsync]                                                  [✔]
$conf[activesync][version]                                                    Exchange 2010sp2 (EAS 14.1)

Authentication

$conf[activesync][auth][type]                                                 HTTP Basic

Autodiscovery

$conf[activesync][autodiscovery] 	                                        Use the full email address as user name
$conf[activesync][outlookdiscovery]                                           No

Logging

$conf[activesync][logging][type]                                              None

Ping Settings

$conf[activesync][ping][deviceping]                                           Device managed heartbeat
$conf[activesync][ping][heartbeatmin]                                         60
$conf[activesync][ping][heartbeatmax]                                         2700
$conf[activesync][ping][heartbeatdefault]                                     4800
$conf[activesync][ping][waitinterval] 	                                15

Mit einem Klick auf die Schaltfläche Bild: Schaltfläche Generate Horde Configuration wird die Konfigurationsdate im Verzeichnis /usr/share/horde/config abgelegt.

 # less /usr/share/horde/config/conf.php
/usr/share/horde/config/conf.php
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 6db3756a468182066a4699d0bb476a46d2c76ec1 $
$conf['vhosts'] = false;
$conf['debug_level'] = E_ALL & ~E_NOTICE;
$conf['max_exec_time'] = 0;
$conf['compress_pages'] = true;
$conf['secret_key'] = '54116806-935c-4e4f-9c1e-58ef0a000054';
$conf['umask'] = 077;
$conf['testdisable'] = true;
$conf['use_ssl'] = 2;
$conf['server']['name'] = $_SERVER['SERVER_NAME'];
$conf['urls']['token_lifetime'] = 30;
$conf['urls']['hmac_lifetime'] = 30;
$conf['urls']['pretty'] = false;
$conf['safe_ips'] = array();
$conf['session']['name'] = 'Horde';
$conf['session']['use_only_cookies'] = true;
$conf['session']['timeout'] = 0;
$conf['session']['cache_limiter'] = 'nocache';
$conf['session']['max_time'] = 72000;
$conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];
$conf['cookie']['path'] = '/';
$conf['sql']['username'] = 'horde_admin_user';
$conf['sql']['password'] = 'rbgsDK39DeM2b2btx9iMHfzd';
$conf['sql']['hostspec'] = 'mysql.dmz.nausch.org';
$conf['sql']['port'] = 3306;
$conf['sql']['protocol'] = 'tcp';
$conf['sql']['database'] = 'horde5';
$conf['sql']['charset'] = 'utf-8';
$conf['sql']['ssl'] = false;
$conf['sql']['splitread'] = false;
$conf['sql']['phptype'] = 'mysqli';
$conf['nosql']['phptype'] = false;
$conf['ldap']['useldap'] = false;
$conf['auth']['admins'] = array('Administrator');
$conf['auth']['checkip'] = true;
$conf['auth']['checkbrowser'] = true;
$conf['auth']['resetpassword'] = true;
$conf['auth']['alternate_login'] = false;
$conf['auth']['redirect_on_logout'] = false;
$conf['auth']['list_users'] = 'input';
$conf['auth']['params']['username'] = 'Administrator';
$conf['auth']['params']['requestuser'] = false;
$conf['auth']['driver'] = 'auto';
$conf['auth']['params']['count_bad_logins'] = false;
$conf['auth']['params']['login_block'] = false;
$conf['auth']['params']['login_block_count'] = 5;
$conf['auth']['params']['login_block_time'] = 5;
$conf['signup']['allow'] = false;
$conf['log']['priority'] = 'INFO';
$conf['log']['ident'] = 'HORDE';
$conf['log']['name'] = LOG_USER;
$conf['log']['type'] = 'syslog';
$conf['log']['enabled'] = true;
$conf['log_accesskeys'] = false;
$conf['prefs']['maxsize'] = 65535;
$conf['prefs']['params']['table'] = 'horde_prefs';
$conf['prefs']['params']['driverconfig'] = 'horde';
$conf['prefs']['driver'] = 'Sql';
$conf['alarms']['params']['table'] = 'horde_alarms';
$conf['alarms']['params']['driverconfig'] = 'horde';
$conf['alarms']['params']['ttl'] = 300;
$conf['alarms']['driver'] = 'Sql';
$conf['group']['driverconfig'] = 'horde';
$conf['group']['driver'] = 'Sql';
$conf['perms']['driverconfig'] = 'horde';
$conf['perms']['driver'] = 'Sql';
$conf['share']['no_sharing'] = false;
$conf['share']['auto_create'] = true;
$conf['share']['world'] = true;
$conf['share']['any_group'] = false;
$conf['share']['hidden'] = false;
$conf['share']['cache'] = true;
$conf['share']['driver'] = 'Sqlng';
$conf['cache']['default_lifetime'] = 86400;
$conf['cache']['params']['sub'] = 0;
$conf['cache']['params']['prefix'] = '/usr/share/horde/static';
$conf['cache']['driver'] = 'File';
$conf['cache']['use_memorycache'] = '';
$conf['cachecssparams']['url_version_param'] = true;
$conf['cachecss'] = false;
$conf['cachejsparams']['url_version_param'] = true;
$conf['cachejs'] = false;
$conf['cachethemes'] = false;
$conf['lock']['params']['table'] = 'horde_locks';
$conf['lock']['params']['driverconfig'] = 'horde';
$conf['lock']['driver'] = 'Sql';
$conf['token']['timeout'] = 180;
$conf['token']['params']['table'] = 'horde_tokens';
$conf['token']['params']['driverconfig'] = 'horde';
$conf['token']['driver'] = 'Sql';
$conf['history']['params']['driverconfig'] = 'horde';
$conf['history']['driver'] = 'Sql';
$conf['davstorage']['params']['driverconfig'] = 'horde';
$conf['davstorage']['driver'] = 'Sql';
$conf['mailer']['params']['host'] = 'smtp.dmz.nausch.org';
$conf['mailer']['params']['port'] = 25;
$conf['mailer']['params']['localhost'] = 'vml000097.dmz.nausch.org';
$conf['mailer']['params']['auth'] = false;
$conf['mailer']['params']['lmtp'] = false;
$conf['mailer']['type'] = 'smtp';
$conf['vfs']['params']['driverconfig'] = 'horde';
$conf['vfs']['type'] = 'Sql';
$conf['sessionhandler']['params']['table'] = 'horde_sessionhandler';
$conf['sessionhandler']['params']['driverconfig'] = 'horde';
$conf['sessionhandler']['type'] = 'Sql';
$conf['sessionhandler']['hashtable'] = false;
$conf['spell']['params']['path'] = '/usr/bin/aspell';
$conf['spell']['driver'] = 'aspell';
$conf['gnupg']['path'] = '/usr/bin/gpg';
$conf['gnupg']['keyserver'] = array('pool.sks-keyservers.net', 'subkeys.pgp.net', 'pgp.mit.edu');
$conf['gnupg']['timeout'] = 10;
$conf['openssl']['cafile'] = '/etc/pki/tls/certs/ca-bundle.crt';
$conf['openssl']['path'] = '/usr/bin/openssl';
$conf['nobase64_img'] = false;
$conf['image']['driver'] = 'Imagick';
$conf['exif']['driver'] = 'Bundled';
$conf['mime']['magic_db'] = '/usr/share/misc/magic';
$conf['geoip']['datafile'] = '/usr/share/GeoIP/GeoIP.dat';
$conf['timezone']['location'] = 'ftp://ftp.iana.org/tz/tzdata-latest.tar.gz';
$conf['problems']['email'] = 'webmaster@nausch.org';
$conf['problems']['maildomain'] = 'nausch.org';
$conf['problems']['tickets'] = false;
$conf['problems']['attachments'] = true;
$conf['menu']['links']['help'] = 'all';
$conf['menu']['links']['prefs'] = 'authenticated';
$conf['menu']['links']['problem'] = 'all';
$conf['menu']['links']['login'] = 'all';
$conf['menu']['links']['logout'] = 'authenticated';
$conf['portal']['fixed_blocks'] = array();
$conf['accounts']['driver'] = 'null';
$conf['user']['verify_from_addr'] = false;
$conf['user']['select_view'] = true;
$conf['facebook']['enabled'] = false;
$conf['twitter']['enabled'] = false;
$conf['urlshortener'] = 'TinyUrl';
$conf['weather']['provider'] = false;
$conf['imap']['enabled'] = false;
$conf['imsp']['enabled'] = false;
$conf['kolab']['enabled'] = false;
$conf['hashtable']['driver'] = 'none';
$conf['activesync']['enabled'] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

Links

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/mail_c7/horde_2.1411247158.txt.gz
  • Zuletzt geändert: 20.09.2014 21:05.
  • von django