EGroupware
Hinweis: Ich habe zu Horde migriert.
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)
Homepage des Projekts: egroupware.org.
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.8.004.
Download:
- Tarballs: http://sourceforge.net/project/showfiles.php?group_id=78745
- RPM-Pakete bei openSUSE: http://download.opensuse.org/repositories/server:/EGroupware/
Setup und Headerverwaltung
Das Setup der Instanz erfolgt über die URL
.../egroupware/setup/index.php
Der Admin-Account unterscheidet sich vom EGroupware-Account des Admins!
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
Hinweise für die Tarball-Installation
- siehe Beschreibung des Updates unten
EGroupware Konfiguration
- Setup-/Konfigurationsadmin-Login
- Schritt 2 - Konfiguration
- temp. Dateien
- Schritt 2 - Konfiguration
/srv/www/tmp
- Schritt 5 - Erweiterte Verwaltung der Anwendungen
- phpsysinfo in Setup nicht installiert
- sambaadmin und gallery nicht aktiviert
- Schritt 5 - Erweiterte Verwaltung der Anwendungen
- Headerverwaltung
- Zugang beschränken besetzt
- Permanente Verbindung: Ja
- Session-Typ: PHP
- MCrypt: Ja
- Konfiguration der Anwendung
- RPC und SOAP deaktiviert
- Cron (nur nötig wenn aus den Sourcen installiert!)
- In crontab vom Apache-User (Abfrage per crontab -u wwwrun -l, editieren per crontab -u wwwrun -e)
*/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
Allgemeine Vorgehensweise siehe Upgrade:
- Altes egroupware-Verzeichnisses sichern:
cd /usr/share mv egroupware egroupware.1.6.001_old
- Auspacken der Tar-Archive, Verzeichnis egroupware wird erstellt
tar jxvf /opt/pkg/egroupware/1.6.002/eGroupware-1.6.002.tar.bz2 tar jxvf /opt/pkg/egroupware/1.6.002/eGroupware-egw-pear-1.6.002.tar.bz2 tar jxvf /opt/pkg/egroupware/1.6.002/eGroupware-gallery-1.6.002.tar.bz2 tar jxvf /opt/pkg/egroupware/1.6.002/eGroupware-icalsrv-1.6.002.tar.bz2 tar jxvf /opt/pkg/egroupware/1.6.002/eGroupware-mydms-1.6.002.tar.bz2
- Link (ggf. Altlast RPM-Installation)
cd egroupware ln -s /var/lib/egroupware/header.inc.php header.inc.php
- .htaccess löschen, falls diese Konfig bereits durch Apache-Config erledigt wurde
mv .htaccess .htaccess.orig
- Setup ausführen: Update (Schritt 1) und Anwendungen verwalten (Schritt 5)
http://www.mydomain.de/egroupware/setup/
SyncML:
- SyncML-Patch von http://k.noc.de einspielen
patch -p1 < /opt/pkg/egroupware/syncml_patch/006_EGroupware-1.6.002-SyncML-Extensions-20091024.patch
- "Anwendungen verwalten" im Setup
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.
Update auf 1.6.002
- keine Probleme bei Upgrade
- SyncML-Patch von http://k.noc.de verwendet zur Unterstützung von Sony Ericsson Handys.
Update auf 1.8.001
- Pakete aus dem openSUSE Repository drüber installiert.
- eGroupware-core überschreibt bzw. löscht /usr/bin/php. Paket php5 nachinstalliert, um php CLI-Binary wieder zu erhalten.
- Das Script php /usr/share/egroupware/doc/rpm-build/post_install.php musste manuell ausgeführt werden
- Admin-Passwörter (Setup, Headerverwaltung) neu gesetzt in header.inc.php, da alte Hashes wohl nicht mehr funktionierten
Update auf 1.8.004
- Pakete aus dem openSUSE Repository drüber installiert.
- eGroupware-core überschreibt bzw. löscht /usr/bin/php. Paket php5 nachinstalliert
- Das Script php /usr/share/egroupware/doc/rpm-build/post_install.php musste manuell ausgeführt werden, wobei folgende Links gesetzt werden sollten:
ln -s /usr/bin/php /usr/bin/php5 ln -s /usr/bin/pear /usr/bin/pear5
- Admin-Passwörter (Setup, Headerverwaltung) neu gesetzt in header.inc.php, da alte Hashes wohl nicht mehr funktionierten. Die Passwörter erst geleert in der Datei, dann über Headerverwaltung neu gesetzt.
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
- Siehe http://www.egroupware.org/sync
- ULR Version 1.4
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:
- --
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!!
- FCKEditor
- Konfiguration:
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
- 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)
Tine 2.0-Fork
Weblinks
- Offizielle Homepage: EGroupware
- Wiki Computerwoche
- http://www.computerwoche.de/heftarchiv/2007/15/1218642/
- pro-linux.de
- http://blog.computer-tipps.info/2007/09/26/vacation-benachrichtigungen-uber-egroupware-einrichten/
- LDAP+postfix+dovecot+egroupware
- http://osdir.com/ml/web.egroupware.user/2005-05/msg00022.html
- Managing your Life with EGroupware (Linux Journal)
- eGroupware 1.6: pro-linux.de, linux-magazin.de