EGroupware

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen

eGroupWare ist ein Groupware-Server mit folgenden Eigenschaften:

  • Features: Verwaltung von Emails, Kontakten, Terminen, Aufgaben und vieles mehr mit umfangreichen Team-Funktionen und offenen Schnittstellen.
  • Open-Source
  • web-basiert per Apache, PHP und MySQL
  • erweiterbar mittels Module (z.B. Wiki, Umfragen, Bildergalerie)

Installation

Da an eGroupWare sehr fleißig weiterentwickelt wird, sind neue Features und Bugfixes (vor allem hinsichtlich der externen Schnittstellen wie GroupDAV) oft im Entwickler-Zweig der Software enthalten. Man kann z.B. auch nur einzelne Module (wie InfoLog) aus dem Entwickler-Zweig ersetzen.

Installation und Konfiguration des offiziellen Releases

Aktuell ist 1.6.001. Nur für die alte Version 1.4.003 sind RPM-Pakete verfügbar.

Download:

Hinweise für die RPM-Installation:

  • Owner
chown -R root:root /usr/share/egroupware
chown -R wwwrun:www /var/lib/egroupware/*
  • Links in /usr/share/egroupware
header.inc.php -> /var/lib/egroupware/header.inc.php
sitemgr-link -> sitemgr/sitemgr-link
  • php.ini
    • open_basedir /usr/share/egroupware/:/var/lib/egroupware/ ggf. auch in php.ini eintragen
    • weitere Einstellungen siehe unten in Apache Konfiguration

eGrouWare Konfiguration

  • Setup-/Konfigurationsadmin-Login
    • Schritt 2 - Konfiguration
      • temp. Dateien
/srv/www/tmp
    • Schritt 5 - Erweiterte Verwaltung der Anwendungen
      • phpsysinfo in Setup nicht installiert
      • sambaadmin und gallery nicht aktiviert
  • Headerverwaltung
    • Zugang beschränken besetzt
    • Permanente Verbindung: Ja
    • Session-Typ: PHP
    • MCrypt: Ja
  • Konfiguration der Anwendung
    • RPC und SOAP deaktiviert
  • Email
    • IMAP-Server:Dovecot
      • in eGroupWare Standard-IMAP ausgewählt (Admin -> emailadmin)
      • für TLS STARTTLS wählen (Option TLS funtioniert nicht)
    • SMTP: Postfix
  • Cron
    • In crontab vom Apache-User (crontab -u wwwrun -l)
*/5 * * * * php -qC /usr/share/egroupware/phpgwapi/cron/asyncservices.php default

Apache Konfiguration

Datei /etc/apache2/conf.d/egroupware.conf

Alias /egroupware /usr/share/egroupware

<Directory /usr/share/egroupware/>
  Options FollowSymLinks ExecCGI
  AllowOverride None
  Order allow,deny
  #Allow from all

  # gilt auch für alle Unterverzeichnisse, die nicht mit "All from all" besetzt sind.
  Allow from 127.0.0.1
  Allow from 192.168.0.0/16
  Allow from 10.1.0.0/16
  # noch ein paar andere Netze ;-)
  AuthType Basic
  AuthName "eGroupWare Pre-Login"
  AuthUserFile /srv/www/htpasswd
  Require user user1
  Satisfy Any

  DirectoryIndex index.html index.php
  AddHandler cgi-script .cgi
  AddDefaultCharset Off
  php_flag file_uploads on
  php_flag log_errors on
  php_flag magic_quotes_gpc off
  php_flag magic_quotes_runtime off
  php_flag register_globals off
  php_flag short_open_tag on
  php_flag track_vars on
  php_flag display_errors off
  php_value error_reporting 'E_ALL & ~E_NOTICE'
  php_value max_execution_time 90
  # mbstring.func_overload 7 macht große Probleme mit wordpress und mediawiki
  # anscheinend ist das Benutzen in <Directory> noch buggy, siehe http://us3.php.net/mbstring
  # bisher scheint es aber auch ohne 7 zu funktionieren (betroffen soll z.B. mail sein)
  #php_value mbstring.func_overload 7
  php_value memory_limit 24M
  php_value session.gc_maxlifetime 1440
  php_value session.save_path /var/lib/egroupware/sessions
  php_value include_path .:/usr/share/php5/PEAR:/usr/share/php
  php_value open_basedir /usr/share/egroupware/:/var/lib/egroupware/:/tmp
  php_value upload_max_filesize 6M
  <Files ~ "\.inc\.php$">
    Order allow,deny
    Deny from all
  </Files>

  # Alle HTTP Zugriffe auf HTTPS umleiten
  # /egroupware/ in path not needed since we are already in the <Directory> context
  RewriteEngine On
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>

<Directory /usr/share/egroupware/fudforum/>
  AllowOverride Limit Options
</Directory>

<Directory /usr/share/egroupware/phpsysinfo/>
  php_value open_basedir /
</Directory>

<Location /egroupware/icalsrv.php>
    Script PUT /usr/share/egroupware/icalsrv.php
    AddHandler ical/ics .ics
    Action ical/ics /usr/share/egroupware/icalsrv.php
    #Order allow,deny
    #Allow from all
</Location>

<Location /egroupware/rpc.php>
    php_value mbstring.func_overload 0
    #Order allow,deny
    #Allow from all
    #Satisfy Any
</Location>

Branch-Version des aktuellen Releases

Zum aktuellen 1.6 Release werden leichte Korrekturen im Branch-Zweig vorgenommen. Diese Software kann man i.d.R. einfach über die bestehende Version kopieren.

Download: http://dev.egroupware.org/other/1.6-snapshot.tar.bz2

Trunk-Zweig

Im Trunk-Entwicklerzweig werden neue Features implementiert. Daraus lassen sich z.T. einzelne Module verwenden und über die bestehende Software kopieren.

Download: http://www.egroupware.org/other/trunk-snapshot.tar.bz2

Hinweise zur Basis-Version 1.4

Diese Module waren aus dem Trunk ersetzt:

  • InfoLog (bessere Unterstützung für GroupDAV etc.)
  • icalsrv (Verbesserungen für GroupDAV) -> seit 1.4.003 nicht mehr aus dem Trunk !

Sprachdateien (unterhalb des setup-Verzeichnisses des Moduls) im 1.5-Trunk liegen in UTF-8 vor, bei 1.4 ist es ISO-8859. Daher müssen diese in ISO-8859 übersetzt werden und vom System neu eingelesen werden in die Datenbank.

  • Beispiel UTF-8 nach ISO-8859
iconv -f utf-8 -t iso-8859-1 -o egw_de.lang.iso egw_de.lang
cp egw_de.lang.iso egw_de.lang
  • Update der Datenbank über
Setup -> Schritt 4 - Verwaltung der Sprachen -> Alle installierten Sprachen löschen und neu installieren

Update auf 1.4.003

  • infolog aus dem aktuellen Trunk vom 21.03.2008 nicht mehr unter 1.4.003 lauffähig. Daher infolog aus dem Trunk vom 10.12.2007 weiter verwendet.

-> Ggf. infolog aus 1.4.003 verwenden, indem die Tabellen neu aufgebaut werden ?

  • icalsrv aus dem 1.4.003 verwenden (ist gegenüber 1.4.002 aktualisiert)


Update auf 1.6.001

  • keine Probleme bei Upgrade
  • SyncML-Patch von http://k.noc.de verwendet zur Unterstützung von Sony Ericsson Handys. Danke an Jörg Lehrke für diesen Patch.

Tipps & Tricks

Zugriffsrechte

Adressbuch

Das persönliche Adressbuch ist normalerweise nicht für andere Gruppenmitglieder einsehbar. Die Gruppenrechte (z.B. der Gruppe "default") beziehen sich hier nur auf die Gruppen-Adressbücher. Um einer anderen Person Zugriff auf das persönlichen Adressbuch zu geben:

  • In der Adressbuch-Anwendung auf "Zugriff gewähren" gehen.
  • Explizit hier andere Benutzer freischalten

InfoLog

InfoLog-Einträge lassen sich in Gruppen verwalten, wenn man in der Gruppenverwaltung die ACLs entsprechend setzt. Dazu die entsprechende Gruppe in "Admin -> Benutzergruppen" auswählen, InfoLog aktivieren und in den ACL für die entsprechende Gruppe die Rechte setzen. Wenn man InfoLog zwar aktiviert, jedoch keine ACLs setzt, ist kein Zugriff anderer möglich (das gilt generell in eGroupWare für ACL-fähige Anwendungen).

Alternativ kann jeder Benutzer einzeln den Zugriff auf die eigenen Einträge gewähren innerhalb der InfoLog-Anwendung unter "Zugriff gewähren".

Kalender

Die Zugriffrechte in der Kalender-Anwendung verhalten sich wie bei InfoLog.

Sollte man keine Rechte innerhalb einer Gruppe haben, wird die Gruppe jedoch trotzdem in der Liste des Planers zur Auswahl angeboten und es gibt eine Meldung, dass man keinen Zugriff auf den Kalender der/des Benutzer(s) hat.

Sollen Einträge niemals innerhalb von Gruppen sichtbar sein, so sollte man diese auf "privat" setzen. Diese werden jedoch ebenfalls im Gruppenkalender angezeigt (sofern die Gruppe die Rechte hat), jedoch nur mit Angaben zu Zeit und Teilnehmer.

GroupDAV in kontact

https://example.org/egroupware/icalsrv/groupdav.php/ 
  • ULR Version 1.6
https://example.org/egroupware/groupdav.php/ 
  • Beim Export von Adressen von kontact zum Server werden diese in das persönliche Adressbuch des admin-Users eingetragen. Diese Adressen kann man später auf dem Server einfach in ein anderes Adressbuch schieben.
  • siehe Probleme mit Umlauten und Felder-Zuordnungen im Adressbuch

SyncML

Version 1.4

SyncML mit einem SonyEricsson W850i funktioniert bis auf die Kontakte, siehe Konfiguration in [1]. Beim Adressbuch bricht der Sync - zumindest bei größeren Adressbüchern - ab ("unerwartete Serverantwort"). Es scheint sich eher um ein Timing-Problem zu handeln.

Desweiteren werden Umlaute vom Handy nicht synchronisiert. Der Eintrag wird auf dem eGroupWare Server ab dem Umlaut abgeschnitten.

Das W850i startet mit SyncML 1.1, was eGroupWare unterstützt. Wenn es allerdings zu einem Fehler kommt, kann es sein, dass das Gerät ab sofort für das gespeicherte SyncML-Profil nur noch SyncML 1.2 nutzt. Sync mit eGroupWare funktioniert dann nicht mehr:

EGWSYNC: [] SyncML: No DTD found for -//SYNCML//DTD SyncML 1.2//EN/0
[on line 62 of "/usr/share/egroupware/phpgwapi/inc/horde/Horde/RPC/syncml_wbxml.php"]

Es scheint so, dass ggf. die Länge bzw. Größe der Daten für das Umschalten nach SyncML 1.2 sorgt.

Abhilfe:

  • Alle Aufgaben, Notizen und Kalender-Einträge löschen im Handy.
  • Ggf. Einträge in eGroupWare löschen (die vermutlich Probleme machen)
  • Neues SyncML-Profil im Handy erstellen
  • Sync durchführen

Version 1.6

Einstellung am Client: http(s)://www.mydomain.de/path_to_egroupware/rpc.php

Zur besseren Unterstützung von SyncML habe ich die eGroupWare SyncML Extensions von Jörg Lehrke installiert. Mit diesem Patch funktioniert ein Sony Ericsson Handy (W850i, W760i) als SyncML-Client hervorragend.

Aktuelle Probleme:

  • Kalender-Alarmen werden vom Server nicht zum Client synchronisiert (Abbruch)

Debugging

  • GroupDAV (icalsrc): icalsrv/inc/class.icalsrv_groupdav.inc.php
var $debug = 0;

oder

var $debug = 1;
  • SyncML
    • Debug-Verzeichnis in Datei phpgwapi/inc/horde/Horde/RPC/syncml.php einstellen, dieses Verzeichnis auch erstellen und für Apache schreibbar machen.
var $_debugDir = '/srv/www/tmp/sync';

Hier landen dann alle SyncML-Messages zw. Client und Server. Falls Debugging nicht mehr erwünscht "sync" z.B. nach "_sync" umbenennen.

    • Weitere Debug-Meldungen gehen in das PHP- bzw. Apache Error-Log gemäß Eintrag in phpgwapi/inc/horde/config/conf.php
$conf['log']['priority'] = PEAR_LOG_INFO;

oder

$conf['log']['priority'] = PEAR_LOG_DEBUG;

Felamimail

  • Editor bei neuen Emails im ASCII Modus starten (statt HTML), Datei felamimail/inc/class.uicompose.inc.php:
//$this->t->set_var('tinymce', $GLOBALS['egw']->html->fckEditorQuick('body', 'simple', $cleanHTMLBody));
$this->t->set_var('tinymce', $GLOBALS['egw']->html->fckEditorQuick('body', 'ascii', $sessionData['body']));

Mit dieser Einstellung wurden zuletzt keine Zeilenumbrüche nach Return mehr gesetzt!!

phpgwapi/js/fckeditor/fckconfig.js

Probleme

UTF-8

eGW verwendet für bestimmte String-Funktionen die mbstring-Erweiterung in PHP. Eigentlich müsste mbstring.func_overload=7 gesetzt werden im Apache Directory-Kontext. Jedoch scheint das Aktivieren im Directory-Kontext nicht sauber zu funktionieren, so dass andere PHP-Applikationen im gleichen virt. Server große Probleme damit haben (Mediawiki, Wordpress). Daher ist diese Funktion ausgeschaltet. Nebenwirkungen konnten bisher nicht beobachtet werden. Siehe [5]

XMLRPC

  • Der XMLRPC-Zugriff in kontact funktioniert nur sehr bedingt.
    • Probleme mit Authentifizierung
    • Export von kontact zum Server funktioniert nur sporadisch bei einzelnen Adressen.

GroupDAV

  • GroupDAV-Zugriff per kontact
    • Umlaute werden (nur) im kontact-Adressbuch falsch dargestellt. Auf dem Server sind diese korrekt - auch nach einem Export per GroupDAV vom Client zum Server. Anscheinend klappt die Umwandlung nur beim Lesen vom Server nicht. Unklar ist, ob der Bug bei eGroupWare oder kontact liegt. Siehe [Forum].
    • Werden Einträge mit nicht korrekter Darstellung der Umlaute in kontact editiert, werden z.B. die Strings abgeschnitten und so auf dem Server gespeichert. Daher: Am besten Kontakte mit Umlauten nur auf dem Server ändern.
    • Export von Adressbucheinträgen von kontact zu eGW
      • vor allem die Telefonnummerneinträge werden recht bunt gemischt ("Privat" wird nicht übernommen sobald noch eine andere Telefonummer existiert, "Sonstige" in kontact wird zu "Privat" in eGW, "Fax Privat" wird nicht übernommen, bei der Anzeige in kontact wird die "Mobil"-Nummer als "Sonstiges" angezeigt
      • nur eine Email-Adresse wird übernommen

CSV-Import von Adressbüchern in eGW

Zuordnung der kontact-Felder (1)
Zuordnung der kontact-Felder (2)
  • kontact
    • Kategorien werden aus kontact nicht exportiert
    • nur eine Email-Adresse wird aus kontact exportiert
    • Umbrüche in Notizen (\n) werden nicht korrekt importiert, bzw. als String "\n"
    • einige Zeilen werden überhaupt nicht importiert (z.B. bei Adressen nur mit Name und Notiz)


Weblinks