Debian Lenny / Confixx 3.36 eGroupware Installation on a multiuser plattform
Ein Kochrezept für eine Installation
Diese Anleitung beruht meine Erfahrungen der letzten Wochen. Sie ist für alle gedacht, die so wie ich manchmal nahe der Verzweifelung sind, dabei durch eine ganze Menge an Posts surfen, auf der Suche nach Lösungen. Darum, bitte siehe: das Kochrezept könnte auch ganz anders ausfallen!, hätte ich andere Erfahrungen gemacht!!!
Dieser Erfahrungsweg gibt keine Gewähr, was Sicherheit oder korrekte Installation betrifft. Im Falle von sensiblen Daten, die mit eGroupware gemanaged werden, sollte man sich evtl. doch überlegen, zu professionellen Anbietern zu wechseln.
Für Anregungen, Kommentare und Verbesserungen bin ich sehr offen! Es kann vorkommen, dass einige Formalitäten Verbesserungswürdig sind.
Das Rezept:
1.)
Anschaffen eines Rootservers, z.B. als VPS Server. Jede andere Lösung, ohne Root Rechte, ist bei mir früher oder später gescheitert.
2.)
Debian Lenny / Confixx 3.36 als Betriebssystem auswählen bzw. installieren
3.)
Anlegen eines UsersA über das Confixx Admin Panel.
4.)
Sich als ‚root user’ (oder vergleichbar) über die Console PUTTY einloggen. Hier tut es eigentlich jede Console, darunter ist
PUTTY wohl die bekannteste (Googeln).
5.)
Bei der Installation von einigen Programmen kann es zu folgender Fehlermeldung kommen:
/var/lib/dpkg/info/udev.postinst: line 72: echo: write error: Operation not permitted
Die Datei udev.postinst steht im Zusammenhang mit dem Ansprechen von “Devices”, also CD Player etc. An einem VPS Server
hängen solche Devices nicht dran. Es kommt mitunter darum zu dem oben angegeben Fehler.
Die Datei ist dahin gehend zu ändern, dass ein “exit 0” in der zweiten Zeile einzufügen ist.
Damit lassen sich etliche Programme ohne Schwierigkeiten wieder installieren.
Eine Fehlermeldung wird bei erfolgreicher Installation von eGroupware dennoch ausgegeben, unter Admin/phpsysinfo in eGroupware steht dann:
ERRORS
File Line Command Message
common_functions.php 313 file_exists(/proc/pci) the file does not exist on your machine
common_functions.php 340 is_dir(/proc/ide) directory does not exist on your machine
common_functions.php 313 file_exists(/proc/scsi/scsi) the file does not exist on your machine
common_functions.php 313 file_exists(/proc/bus/usb/devices) the file does not exist on your machine
(siehe auch:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503953)
6.)
Wechseln in die Docroot /var/www/userA/html
Die Docroot des UsersA beginnt in der Verzeichnisstruktur vom Ordern HTML oder HTDOCS (o.ä.) an, z.B.
/var/www/UserA/html.Dieser Pfad ist die „docroot“
7.)
Laden von Egroupware auf den Lenny Server via Debian Backports:
apt-get install debian-backports-keyring
Die Frage nach der Verification mit Yes bestätigen
und ein weiteres: apt-get update ausführen!
Danach: vim /etc/apt/sources.list
In der sources.list evtl. auskommentieren von allen URIs, diese URIs in einfügen:
deb http://www.backports.org/debian lenny-backports main
deb-src http://www.backports.org/debian lenny-backports main
und dann wieder: apt-get update
Nächster Befehl: apt-get source egroupware
Diese Meldungen erscheinen:
Get:1 http://www.backports.org lenny-backports/main egroupware 1.6.002+dfsg-1~bpo50+1 (dsc)
Get:2 …(tar)
Get:3 …(diff)
…
dpkg-source: extracting egroupware in egroupware-1.6.002+dfsg
…
…
ok
Egroupware liegt jetzt in einem eigenen Folder zu weiteren Installation vor. Evtl. Foldernamen ändern, da der aktuelle Foldername zu lang ist.
Ps. Die Sources.list wieder auf den alten Zustand zurück setzen.
P.p.s Ein anderer Weg: Herunterladen von den Modulen egroupware-1.6.002 (basics, egw-pear, etc) als ZIP File, von den Seiten www.egroupware.org. und hochladen auf den eigenen Server. Achtung: eGroupware ist dann nicht “Debianisiert”.
6.)
Herunterladen und Hochladen der egw-pear-1.6.002…tar.bz2 Datei.
7.)
In das Verzeichnis /var/www/userA/html wechseln und die Befehl
Unzip egroupware-egw-pear-1.6.002*
eingeben. Das Verzeichnis ‚/egroupware/egw-pear’ wird automatisch dann in der Docroot des UserA angelegt, die Files werden dort abgelegt. Wenn die Umbennung des Folders von eGroupware-1.6.002… in egroupware vorher erfolgt, braucht man nicht mehr den egw-pear Folder an die richtige Stelle in der Baumstruktur verschieben.
8.)
Mehrere weitere Verzeichnisse anlegen, dabei in das Root-Verzeichniss wechseln:
Mkdir /var/www/userA/var
Mkdir /var/www/userA/var/files
Mkdir /var/www/userA/var/backup
Mkdir /var/www/userA/var/tmp
Diese obigen Verzeichnisse liegen parallel zur Docroot (/var/www/userA/html…), und somit ausserhalb der Docroot! Das ist für den späteren Setup wichtig.
9.)
Das Ändern der Rechte ist nicht notwendig, solange nur der Eigentümer richtig gesetzt wird. Nur für die eGroupware Verzeichnisse ausserhalb der Docroot die richtigen Rechte setzten.
Ändern der Rechte: Es handelt sich bei dem Account um den Account von userA und nicht von ‚root:root’. Sollte es doch Schwierigkeiten geben, dann sowohl innerhalb der Docroot als auch bei den Verzeichnissen /var/files…backup…tmp ändern.
chmod –R 770 html/egroupware
chmod –R 770 var
10.)
Einer der Owner oder dieser Gruppe muss ein Systemuser/gruppe sein. In diesem Falle also z.B. wwwrun oder wwwdata (gip 555)!
Damit kann das System auf diese Files zugreifen und auch schreiben! Mit dem –R Parameter werden alle Verzeichnisse und Subverzeichnisse incl. Files auf diesen Wert gesetzt.
Chown –R userA:wwwrun htm/egroupware
Chown –R userA:wwwrun var
Jetzt müsste bei ‚ls –la’ folgende Liste kommen (bzw. in die docroot wechseln)
Drxwrxw— usera:wwwrun html/egroupware
Drxwrxw— usera:wwwrun var
11.)
Installation von PEAR! Diese Klassen sind wichtig für die Installation. Die meisten Fehler wärend des Setups werden durch das
Modul ‚…egw-pear…’ behoben. Jedoch gibt es ein paar Module, die von Hand nach installiert werden müssen.
Von lokalen Lösungen wie go-pear oder lynx habe ich Abstand genommen.
Sollte der Befehl ‘# pear version’ ohne Folgen bleiben (z.B. #error bash etc), dann:
apt-get install php-pear
….
Installation ok
Mit
pear config-get php_dir
sich den Pfad für das Module-Verzeichnis anzeigen lassen.
Sollte das nicht
/usr/share/php
sein, dann mit
pear config-set php_dir /usr/share/php
denn Pfad setzten.
Dieser Pfad wiederholt sich in einigen Dateien wie /etc/pear/pear.conf. Eine Veränderung in einer Datei muss zwingend eine Veränderung in einer anderen nach sich ziehen. Geschieht das nicht, legt man z.B. die Dateien in einem Verzeichnis ab, und startet „nichts“ in einem anderen!
Neben dem Verzeichniss /usr/share/php gibt es noch das Verzeichnis /usr/share/pear! Achtung: das Standartverzeichnis ist tatsächlich ‚/php’ und nicht ‚/pear’… also nicht verwirren lassen.
Installation von den Modulen
pear install Auth_SASL
pear install XML_Feed_Parser
pear install Net_IMAP
pear install Net_Sieve
Mit # pear install ‘xyz’ alle Module, die durch egw-pear eigentlich installiert sein sollten, können so auch installiert werden, ist aber meist nicht nötig, einige Ausnahmen sind oben gelistet. Diese Ausnahmen traten auf meinem Server auf.
Mit ‚#pear version’ und ‚#pear list’ die Installation überprüfen!
12.)
.htaccess ändern:
Die Datei .htaccess findet sich im Verzeichnis ‚/egroupware’ (innerhalb der docroot) und man hat hier die Wahl der Qual:
entweder “AllowOverride” Fileinfo zu setzen oder sie einfach umzubenennen! Z.B. in HTDOCS, PHP.INI, oder jeder andere Name!
Die Parameter in der ‚.htaccess Datei’ jedoch im Confixx Admin Panel unter HTTPD Optionen einfügen.
Dazu auf httpd Optionen anwählen, User oder Domain ändern wählen, und dann Advance Setting. Hier im Fenster folgende Werte
einsetzen, dabei hinter jedem Wert ein Return drücken, und in der nächsten Zeile wieder anfangen.
php_value memory_limit 32M
php_value max_execution_time 60
php_flag register_globals Off
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_value upload_max_filesize 16M
php_flag session.use_trans_sid Off
php_value session.gc_probability 1
php_value session.gc_divisor 10
php_value mbstring.func_overload 7
php_admin_value include_path .:/usr/share/php:/usr/share/pear/bin
php_admin_value safe_mode Off
Kein Openbase_dir zulassen, im httpd im Administratorbereiche für den User bzw. Domain rausnehmen bzw. auf none einstellen!
13.)
Den Server neu starten:
/etc/init.d/apache2 reload
14.)
Nocheinmal checken, ob alle PHP Werte richtig übernommen wurden:
Dazu ein kleines Programm in einem Editor schreiben,
<?php
phpinfo()
?>
unter ‚phpinfo.php’ abspeichern und in die Docroot des userA laden:
Dann dieses Programm im Browserfenster (http://www.mydomain.com/phpinfo.php) aufrufen und die ‚localen’ und die ‚master’
Werte miteinander vergleichen. Bei den Localen Werten sollten die obigen EGW Werte erscheinen.
15.)
Eine Datenbank in Confixx User Panel anlegen und notieren z.B.:
Name der Datenbank: userA_DB
Hostname: localhost
User: userA
Passwort: mydb
16.)
Im Confixx User Panel noch eine Subdomain anlegen, nur um es später einfacher zu
haben: z.B. egw.mydomain.com für http://mydomain.com/egroupware.
Dieser Schritt wurde normalerweise für die angegeben, die kein Verzeichnis parallel zur Docroot angeben konnten. Das Problem wurde aber durch Root-Rechte behoben.
14.)
Setup von eGroupware
Browser öffnen und http://egw.mydomain.con/setup anwählen
Installations Check ausführen: Die gelben Warnzeichen für die verschieden Datenbank können ignoriert werden, solange Mysql genommen wird, und kein Modul diesbezüglich Gelb leuchtet!
Sollten die Pear Module nicht geladen sein: bitte in einem anderen Browser-Tab
http://egw.mydomani.com/egw-pear/setup/setup.inc.php starten, und nocheinmal checken. Evtl. sollten man das ohnehin vorher starten.
Alles andere sollte im Grünen Bereich sein, evtl. werden noch die Leserechte bei header.inc.php angewarnt, aber dass sollte sich später regeln.
15.) Anlegend des Headers!
Bitte folgende Angaben machen (hier ein Beispiel!!!)
Serverroot: /var/www/userA/html/egroupware (siehe Punkt 5)
Benutzer Adminverwaltung: ‚IchBinAdmin’ (oder welcher Name auch immer)
Benutzer Passwort: ‚IchBinGeheim’ (oder was auch immer)
Zugang beschränken: (freilassen, aber es lohnt sich bei Intranets)
Permantente Verbindung: Ja
Sitzungshandler: PHP Sitzungshandler aus php.ini
MyCrypt einstellen: Nein
MyCrypt Ini-vektor: (So lassen)
Domain-Auswahlbox: Nein
Datenbank Instanz default
Datenbank Typ MySql
Datenbank Host localhost (Vergleiche Punkt 15)
Datenbank Port 3306
Datenbank-Name userA_DB (Vergleiche Punkt 15)
Datenbank-User userA (Vergleiche Punkt 15)
Datenbank-Passwort mydb (Vergleiche Punkt 12)
Konfigurationsuser ‚IchBinKonfigurator’ (oder was auch immer)
Konfigurationspasswort ‚IchBinSchonWiederGeheim’ (oder was auch immer)
Den Header schreiben bzw. herunterladen.
Achtung: Sollte die Taste ‚Schreiben’ nicht erscheinen, sind die Configurationsrechte im Verzeichniss richtig zu setzten,
siehe Punkt 9 und 10!
Kleiner Bug: Eine andere Möglichkeit ist, dass eine andere Sprache bei der Installation gewählt werden muss, z.B. von Deutsch auf English. Dies Phänomen trat bei 1.6.001 auf, nicht mehr bei 1.6.002.
Zur Sicherheit sollte man die ‚header.inc.php’ immer herunterladen.
Sollte der vorangegangene Fehler auftreten, und sich die Datei nicht auf dem Server ‚schreiben’ (speichern) lässt, dann erst
herunterladen, raufladen und Rechte des Verzeichnisses bzw Datei ändern, siehe Punkt 9 und 10.
Dabei sollten die „World“ Rechte grundsätzlich nicht gesetzt sein, also nur:
Chown userA:wwwdata header.inc.php
Chmod 770 header.inc.php
oder
Chmod 400 header.inc.php
Je weniger Rechte gesetzt sind, um so besser.
16.) Vom Header zum Konfigurations Menu wechseln, und dann der Reihe nach vorgehen!
17.) Alle Module laden (nur einmal am Anfang ausführen!!)
18.) Anlegen des Setups-Konfiguration
Ort der Speicherung von Dateien: Dateisystem
Vollständiger Pfad für Benutzerdateien: /var/www/userA/var/files (Vergleiche 8)
Benutzer nur innerhalb der Docroot: (frei lassen)
Vollständiger Pfad für Backups: /var/www/userA/var/backup (Vergleiche 8)
Vollständiger Pfad für Temporäre Dateien: /var/www/userA/var/tmp (Vergleiche 8)
URL zur Installation http://egw.mydomain.com
Auswahlreihenfolge der Bilder PNG-JPG-GIF
Hostname: localhost (Vorgabe des Providers)
Keine Angaben bei FTP/ProxyServer
Die Einrichtung der Mail-Server bereitete mir einige Schwierigkeiten, ich habe aber auch hier einen Weg herum gefunden. Da der Postfachname mit keiner der angebotenen Bezeichnungen übereinstimmt, habe ich später eine Individuelle Eingabe gewählt.
Standartmailserver mail.mydomain.com
Mail Protokol imap
Mail Server Typ Virtual Mail Manager (Login enthält Namen)
Mail Domain mydomain.com
SMTP Server Name smtp.mydomain.com
SMTP Server Port 25 (Standart)
Benutzer für SMTP Authentifizierung userA_postfach; vorname.name@mydomain.com
Passwort für SMTP Authentifizierung (Freilassen)
Authentifizierung /Benutzerkonten
Verschiedene Felder: (Vorgaben so belassen)
Und nun alle obigen Angaben speichern, auch wenn noch einige nicht vollständig sind.
19.)
Alle weiteren Angaben im Setup nach den Vorgaben ausführen, sowohl beim Anlegen des Adminkontos (so einfach wie ein Konto anlegen bei einem Emailprovider), als auch bei der Installation der einzelnen Module.
Bevor Felamimail installiert werden kann, muss zuerst der emailadmin installiert sein. Dies ist allerdings nicht mehr nötig bei eGroupware 1.6.002.
Bei der Sprachauswahl habe ich utf-8 ausgewählt. Man weiss nie……
20.)
Ein provisorischen Backup vornehmen, um nur nicht alles wieder von vorne zu beginnen.
21.)
Nocheinmal Setup Check vornehmen, sollte jetzt eigentlich alles im Grünen Bereich sein.
22.)
Und dann mit dem Admin Einloggen und Benutzergruppen und Benutzer innerhalb von eGroupware anlegen.
23.)
emailadmin und Felamimail einstellen.
Anlegen eines Blanko Formulars in emailadmin. Wichtig ist nur, dass individuelles Generieren und Zugriff erlaubt ist. Dafür
müssen die drei Boxen in dem General Tab angeklickt werden, die dies zulassen. Dieses Formular muss dann dem User zugeordnetsein.
In felamimail hat dann der User, verschieden vom Administrator, hat hier die Möglichkeit, eigenen Emailadressen und deren
Kontozugriff zu hinterlegen. Hier habe ich dann imap (port 143) und smtp (port 25) mit dem Postfach (z.B. ‘userApostA’), und
Passwort, was schon vorher in Confixx angelegt worden ist, eingetragen. Kein SSL.
Viel Glück, Newbees und möge die Kraft des Universums mit Euch sein…
Jens
P.s. für Korrekturen und Anregungen bin ich immer dankbar.