====== Installation eGroupWare ======
===== Vorraussetzungen ===== 
  * [[ldap         | LDAP Server ]]
  * [[cyrus-imapd  | IMAP Server ]] ( [[cyrus-imapd-ssl | mit TLS/SSL ]] )
  * [[postfix-ldap | SMTP Server ]] ( mit TLS/SSL ) 
  * [[apache       | Apache Webserver ]] ( [[apache-ssl | mit TLS/SSL ]] )
MySQL oder Postgres
==== OpenLDAP ====
=== Debian 4.0 ===
  zcat /usr/share/doc/egroupware-core/ldap/rfc2307bis.schema.gz > /etc/ldap/schema/rfc2307bis.schema
''/etc/ldap/slapd.conf'' : ((Die Nutzung des rfc2307bis.schema ist optional, genaueres unter doc/egroupware-core/ldap/README )) 
#include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/rfc2307bis.schema
include         /etc/ldap/schema/inetorgperson.schema
''/etc/ldap/schema/rfc2307bis.schema'' :
Hier müssen die Attribute ''uidNumber'' und ''gidNumber'' entfernt werden
Für das Adressbuch werden noch folgende weitere Schemata empfohlen:
  * ''./addressbook/doc/mozillaabpersonalpha.schema''
  * ''./addressbook/doc/evolutionperson.schema''
include         /etc/ldap/schema/mozillaabpersonalpha.schema
include         /etc/ldap/schema/evolutionperson.schema
Für [[samba-ldap|Samba]] wird das Samba-Schema benötigt:
include         /etc/ldap/schema/samba.schema
  slaptest
=== SuSE 10.0 ===
''/etc/openldap/slapd.conf'' :
include         /etc/openldap/schema/rfc2307bis.schema
include         /etc/openldap/schema/inetorgperson.schema
=== Verzeichnisbaum füllen ===
OrganizationalUnits "people" und "groups" für Benutzer und Gruppen im LDAP-Baum anlegen: (( Die Kursschreibweise ''ldapadd -x -W'' ohne Angabe des Admin-Kontos funktioniert nur, wenn vorher eine [[ldap|Konfigurationsdatei]] ''.ldaprc'' oder ''ldap.conf'' angelegt wurde ))
DOMAIN="dc=linuxhotel,dc=de"
ldapadd -x -W <
dn: cn=egroupware,$DOMAIN
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: egroupware
userPassword: villa
description: egroupware access
dn: ou=people,$DOMAIN
objectClass: top
objectClass: organizationalUnit
ou: people
dn: uid=admin,ou=people,$DOMAIN
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uidNumber: 10000
gidNumber: 10000
loginShell: /bin/bash
uid: admin
homeDirectory: /home/admin
sn: admin
cn: Administrator
userPassword: villa
dn: ou=groups,$DOMAIN
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: cn=Default,ou=groups,$DOMAIN
objectClass: top
objectClass: posixGroup
objectClass: groupOfNames
gidNumber: 10001
cn: Default
memberUid: admin
member: uid=admin,ou=people,$DOMAIN
dn: cn=Admins,ou=groups,$DOMAIN
objectClass: top
objectClass: posixGroup
objectClass: groupOfNames
gidNumber: 10000
cn: Admins
memberUid: admin
member: uid=admin,ou=people,$DOMAIN
dn: ou=contacts,$DOMAIN
objectClass: top
objectClass: organizationalUnit
ou: contacts
dn: ou=shared,ou=contacts,$DOMAIN
objectClass: top
objectClass: organizationalUnit
ou: shared
dn: ou=personal,ou=contacts,$DOMAIN
objectClass: top
objectClass: organizationalUnit
ou: personal
==== MySQL ====
=== Pakete ===
== SuSE 10.3 ==
  mysql
=== Konfiguration ===
  /etc/init.d/mysql start
  mysql -u root -p
  CREATE DATABASE egroupware;
  GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY 'Passwort';
  quit;
==== Postgres ====
=== Pakete ===
== Debian 4.0 ==
  postgresql
=== Konfiguration ===
  su - postgres
  createuser --no-adduser --no-createdb -P egroupware
  createdb --encoding=utf-8 --owner egroupware egroupware
Als root:
''/etc/postgresql/*/*/pg_hba.conf'' : ( Debian 4.0 )
host  egroupware  egroupware  127.0.0.1  255.255.255.255  md5
''/etc/postgresql/*/*/postgresql.conf'' : ( Debian 4.0 )
tcpip_socket = true
  /etc/init.d/postgresql-* restart
===== Pakete =====
==== SuSE 10.3 ====
  zypper addrepo http://download.opensuse.org/repositories/server:/eGroupWare/openSUSE_10.3/ eGroupWare-10.3
  zypper install eGroupWare php5-mysql php5-ldap php5-pear-auth_sasl 
==== Debian 4.0 ====
eGroupWare ist in Debain Etch nicht enthalten, aber es gibt ein passendes backports.org-Paket. Dieses Paket enthält allerdings noch Version 1.2.x. In Version 1.3.007 wurde die [[  http://www.egroupware.org/index.php?page_name=wiki&lang=de&wikipage=AddresbookAccountsConcept | LDAP Unterstützung erheblich ]] verbessert. Damit sind die aktuellen [[http://packages.debian.org/egroupware | Debian-Pakete ]] in 
[[http://packages.debian.org/sarge/egroupware | sarge ]], 
[[http://packages.debian.org/etch-backports/egroupware | etch-backports ]] und 
[[http://packages.debian.org/lenny/egroupware | lenny ]] 
 für //mich// zur Zeit (9.5.2008) uninteressant. In 
[[http://packages.debian.org/sid/egroupware | sid ]], 
ist eine Version 1.4.x ... mal sehen wann die in den backports ankommt. 
Bleibt das Original von der [[ http://sourceforge.net/projects/egroupware/ | egroupware Sourceforge Seite ]]
=== Original ===
  aptitute install  apache2 libapache2-mod-php5 php5-gd php5-pgsql php5-imap php5-auth-pam php-log php-pear php5-ldap php5-mcrypt php5-mhash
  mkdir -p /var/www/egroupware/html
  cd /var/www/egroupware
  tar xjf /tmp/eGroupWare-1.4.004-2.tar.bz2
  tar xjf /tmp/eGroupWare-egw-pear-1.4.004-2.tar.bz2
  mv egroupware/ html
=== Alte Version 1.2.x ===
Diese Version benutzt ein eigenes LDAP-Schema für Benutzer und Kontakt-Daten.
Habe ich daher nicht getestet.
''/etc/apt/sources.list''
deb http://www.backports.org/debian etch-backports main contrib non-free
  wget -O - http://backports.org/debian/archive.key | apt-key add -
  apt-get update
  aptitude install egroupware 
=== Version 1.4.x aus sid ===
(funktioniert unter etch nicht, debhelper version 7 erforderlich)
''/etc/apt/sources.list'' :
deb-src http://ftp.de.debian.org/debian sid main
  aptitude update
  aptitude install fakeroot
  apt-get build-dep egroupware
Als Nutzer:
  apt-get source egroupware-egw-pear
  cd egroupware-egw-pear-1.4.*/
  dpkg-buildpackage -rfakeroot -uc -b
  cd ..
  apt-get source egroupware
  cd egroupware-1.4.*.dfsg/
  dpkg-buildpackage -rfakeroot -uc -b
Als root:
  dpkg -i /home/nutzer/egroupware*.deb
===== Konfiguration =====
  /etc/init.d/apache2 restart
''/setup/check_install.php'' ausführen und angezeigte Konfigurationen vornehmen
Beim Ausfüllen der Webformulare beachten: ein bestehender LDAP-Nutzer (hier: nutzer17) sollte zum eGroupWare admin gemacht werden. Mit dem Admin ist hier nicht der "Setup-/Konfigurationsadmin" und auch nicht der "Benutzer Headerverwaltung" gemeint. 
  firefox http://notebook17.linuxhotel.de/egroupware/setup/index.php
''header.inc.php'' : ( Auszug )
        $GLOBALS['egw_info']['server']['header_admin_user'] = 'admin';
        $GLOBALS['egw_info']['server']['header_admin_password'] = 'admin-passwort-hash';
        $GLOBALS['egw_info']['server']['setup_acl'] = '';
        /* eGroupWare domain-specific db settings */
        $GLOBALS['egw_domain']['naturnah.de'] = array(
                'db_host' => 'localhost',
                'db_port' => '5432',
                'db_name' => 'egroupware',
                'db_user' => 'egroupware',
                'db_pass' => 'datenbank-passwort',
                // Look at the README file
                'db_type' => 'pgsql',
                // This will limit who is allowed to make configuration modifications
                'config_user'   => 'admin',
                'config_passwd' => 'admin-passwort-hash';;
        );
  chown root:www-data header.inc.php
  chmod 640 header.inc.php
  psql -c 'SELECT * from egw_config;' -d egroupware
( Auszug )
 config_app   |        config_name        | config_value
 phpgwapi     | site_title                | Linuxhotel Lab
 phpgwapi     | email_address_format      | account
 phpgwapi     | ldap_contact_context      | dc=lab,dc=linuxhotel,dc=de
 phpgwapi     | login_logo_url            | http://www.linuxhotel.de
 phpgwapi     | login_logo_title          | Linuxhotel Lab Groupware
 phpgwapi     | login_logo_file           | linuxhotel-logo-150.png
 phpgwapi     | ldap_contact_host         | localhost
 phpgwapi     | mail_server               | localhost
 phpgwapi     | mail_server_type          | imap
 bookmarks    | mail_footer               | \n\n--\nThis was sent from eGroupWare\nhttp://www.egroupware.org\n
 phpgwapi     | system_charset            | utf-8
 phpgwapi     | temp_dir                  | /tmp
 phpgwapi     | files_dir                 | /var/lib/egroupware/lab.linuxhotel.de/files
 phpgwapi     | backup_dir                | /var/lib/egroupware/lab.linuxhotel.de/backup
 phpgwapi     | webserver_url             | https://egroupware.lab.linuxhotel.de
 phpgwapi     | hostname                  | egroupware.lab.linuxhotel.de
 phpgwapi     | smtp_port                 | 25
 phpgwapi     | auth_type                 | ldap
 phpgwapi     | account_repository        | ldap
 phpgwapi     | account_min_id            | 10000
 phpgwapi     | account_max_id            | 20000
 phpgwapi     | auto_create_acct          | lowercase
 phpgwapi     | auto_create_expire        | 604800
 phpgwapi     | ldap_host                 | localhost
 phpgwapi     | ldap_context              | ou=people,dc=lab,dc=linuxhotel,dc=de
 phpgwapi     | ldap_group_context        | ou=groups,dc=lab,dc=linuxhotel,dc=de
 phpgwapi     | ldap_root_dn              | cn=egroupware,dc=lab,dc=linuxhotel,dc=de
 phpgwapi     | ldap_root_pw              | ig4Fahso
 phpgwapi     | ldap_encryption_type      | md5
 phpgwapi     | ldap_extra_attributes     | True
 phpgwapi     | ldap_account_home         | /home
 phpgwapi     | ldap_account_shell        | /bin/bash
 manual       | manual_remote_egw_url     | http://manual.egroupware.org/egroupware
 manual       | manual_update_url         | http://manual.egroupware.org/egroupware/wiki/index.php?page=Manual&action=xml
 phpgwapi     | contact_repository        | sql-ldap
 phpgwapi     | mail_login_type           | vmailmgr
 phpgwapi     | mail_suffix               | lab.linuxhotel.de
 phpgwapi     | smtp_server               | localhost
 phpgwapi     | smpt_port                 | 25
Admin-Benutzer admin anlegen. Existiert zwar schon im LDAP, aber hat noch keine Anwendungen. 
LDAP-Passwort ansehen: ( als Benutzer postgres )
  psql -d egroupware -c "select config_value from egw_config where config_name = 'ldap_root_pw' and config_app = 'phpgwapi';"
LDAP-Passwort setzen: ( als Benutzer postgres )
  psql -d egroupware -c "update egw_config set config_value = 'passwort' where config_name = 'ldap_root_pw' and config_app = 'phpgwapi';"
===== Dokus & Links =====
  * /usr/share/doc/egroupware-core/README.Debian ( Debian )
  * addressbook/doc/README
  * phpgwapi/doc/ldap/README
===== Fragen =====
  * Systemzeichensatz: ist utf8 ok? Oder gibts da bei PHP noch Probleme?