Doku zu FCGI verbessert
[kivitendo-erp.git] / doc / INSTALL.txt
1 Inhaltsverzeichnis
2 ******************
3
4 Inhalt der Anleitung
5 1 Aktuelle Hinweise
6 2 Benötigte Software und Pakete
7   2.1 Betriebssystem
8   2.2 Pakete
9 3 Manuelle Installation des Programmpaketes
10 4 Anpassung der PostgreSQL-Konfiguration
11   4.1 Zeichensätze/die Verwendung von UTF-8
12   4.2 Änderungen an Konfigurationsdateien
13   4.3 Erweiterung für servergespeicherte Prozeduren
14   4.4 Datenbankbenutzer anlegen
15 5 Apache-Konfiguration
16 6 Der Task-Server
17   6.1 Verfügbare und notwendige Konfigurationsoptionen
18   6.2 Automatisches Starten des Task-Servers beim Booten
19     6.2.1 SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
20     6.2.2 Upstart-basierende Systeme (z.B. Ubuntu)
21   6.3 Wie der Task-Server gestartet und beendet wird
22 7 Benutzerauthentifizierung und Administratorpasswort
23   7.1 Grundlagen zur Benutzerauthentifizierung
24   7.2 Administratorpasswort
25   7.3 Authentifizierungsdatenbank
26   7.4 Passwortüberprüfung
27   7.5 Name des Session-Cookies
28   7.6 Anlegen der Authentifizierungsdatenbank
29 8 Benutzer- und Gruppenverwaltung
30   8.1 Zusammenhänge
31   8.2 Datenbanken anlegen
32   8.3 Gruppen anlegen
33   8.4 Benutzer anlegen
34   8.5 Gruppenmitgliedschaften verwalten
35   8.6 Migration alter Installationen
36 9 OpenDocument-Vorlagen
37 10 Lx-Office ERP verwenden
38
39
40 Inhalt der Anleitung
41 ********************
42
43 1 Aktuelle Hinweise
44 *******************
45
46 Aktuelle Installations- und Konfigurationshinweise gibt es:
47
48    * auf der Lx-Office Homepage unter
49      `http://lx-office.org/index.php?id=dokumentation'
50
51    * im Lx-Office-Wiki unter Dokumentation
52      (`http://wiki.lx-office.org/index.php/Lx-Office_ERP')
53
54    * im Lx-Office-Forum: `http://www.lx-office.org/forum/'
55
56 2 Benötigte Software und Pakete
57 ********************************
58
59 2.1 Betriebssystem
60 ==================
61
62 Lx-Office ist für Linux konzipiert, und sollte auf jedem unixoiden
63 Betriebssystem zum Laufen zu kriegen sein. Getestet ist diese Version im
64 speziellen auf Debian und Ubuntu, grundsätzlich wurde bei der Auswahl
65 der Pakete aber darauf Rücksicht genommen, dass es ohne große Probleme
66 auf den derzeit aktuellen verbreiteten Distributionen läuft.
67
68    Anfang 2011 sind das folgende Systeme:
69
70    * Ubuntu 8.04 LTS Hardy Heron
71
72    * Ubuntu 9.10 Karmic Koala
73
74    * Ubuntu 10.04 Lucid Lynx
75
76    * Ubuntu 10.10 Maverick Meerkat
77
78    * Debian 5.0 Lenny
79
80    * Debian 6.0 Squeeze
81
82    * openSUSE 11.2
83
84    * openSUSE 11.3
85
86    * SuSE Linux Enterprice Server 11
87
88    * Fedora 13
89
90    * Fedora 14
91
92    Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich
93 einfacher zu installieren ist.
94
95    Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die Module im
96 Archiv recht alt sind, und das viele der benötigten Module nicht
97 einfach zu installieren sind. Dafür sollte es kurz nach dem Release ein
98 eigenes .deb geben.
99
100    Alternativ dazu kann die normale Installation durchgeführt werden
101 (*note Manuelle Installation des Programmpaketes::), wenn vorher ein
102 Kompatibilitätspaket installiert wird, das die fehlenden Pakete
103 bereitstellt.  Das Paket ist auf Sourceforge
104 (https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/)
105 unter dem Namen `lx-erp-perl-libs-compat-v2.tar.gz' hinterlegt.
106
107    Zur Installation das Paket in das entpackte Lx-Office Verzeichnis
108 entpacken:
109
110    `tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/'
111
112    Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
113
114    `libbit-vector-perl libsub-exporter-perl libclone-perl
115 libclass-factory-util-perl'
116
117    Danach sollte der Installationscheck (*note Pakete::) die
118 enthaltenen Pakete erkennen.
119
120 2.2 Pakete
121 ==========
122
123 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
124 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
125
126    Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht
127 Bestandteil einer Standard-Perl-Installation sind:
128
129    * parent
130
131    * Archive::Zip
132
133    * Class::Accessor
134
135    * CGI::Ajax
136
137    * Config::Std
138
139    * DateTime
140
141    * DBI
142
143    * DBD::Pg
144
145    * Email::Address
146
147    * List::MoreUtils
148
149    * Params::Validate
150
151    * PDF::API2
152
153    * Rose::Object
154
155    * Rose::DB
156
157    * Rose::DB::Object
158
159    * Template
160
161    * Text::CSV_XS
162
163    * Text::Iconv
164
165    * URI
166
167    * XML::Writer
168
169    * YAML
170
171    Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen,
172 `URI' und `XML::Writer' sind notwendig. Ohne startet Lx-Office nicht.
173
174    Gegenüber Version 2.6.1 sind `parent', `DateTime', `Rose::Object',
175 `Rose::DB' und `Rose::DB::Object' neu hinzugekommen. `IO::Wrap' wurde
176 entfernt.
177
178    `Email::Address' und `List::MoreUtils' sind schon länger feste
179 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide
180 sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer
181 zukünftigen Version aber aus dem Paket entfernt werden. Es wird
182 empfohlen diese Module zusammen mit den anderen als Bibliotheken zu
183 installieren.
184
185    `CGI::Ajax' ist nach wie vor in einer modifizierten Version
186 mitgeliefert und braucht nicht nachinstalliert werden.
187
188    Die zu installierenden Pakete können in den verschiedenen
189 Distributionen unterschiedlich heißen.
190
191    Für Debian oder Ubuntu benötigen Sie diese Pakete:
192
193    `apache2 postgresql libparent-perl libarchive-zip-perl
194 libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl
195 libpg-perl libemail-address-perl liblist-moreutils-perl
196 libpdf-api2-perl librose-object-perl librose-db-perl
197 librose-db-object-perl libtemplate-perl libtext-csv-xs-perl
198 libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl
199 libconfig-std-perl libparams-validate-perl'
200
201    Für Fedora Core benötigen Sie diese Pakete:
202
203    `httpd postgresql-server perl-parent perl-Class-Accessor
204 perl-DateTime perl-DBI perl-DBD-Pg perl-Email-Address
205 perl-List-MoreUtils perl-PDF-API2 perl-Rose-Object perl-Rose-DB
206 perl-Rose-DB-Object perl-Template-Toolkit perl-Text-CSV_XS
207 perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML'
208
209    Für OpenSuSE benötigen Sie diese Pakete:
210
211    `apache2 postgresql-server perl-Archive-Zip perl-Class-Accessor
212 perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils
213 perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv
214 perl-URI perl-XML-Writer perl-YAML'
215
216    Bei openSuSE 11 ist `parent' bereits enthalten, und braucht nicht
217 nachinstalliert werden. Die `Rose::*' Pakete sind derzeit nicht für
218 SuSE gepackt, und müssen anderweitig nachinstalliert werden.
219
220    Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
221 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
222
223    `./scripts/installation_check.pl'
224
225 3 Manuelle Installation des Programmpaketes
226 *******************************************
227
228 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird im
229 Dokumentenverzeichnis des Webservers (z.B. `/var/www/html/',
230 `/srv/www/htdocs' oder `/var/www/') entpackt:
231
232    `cd /var/www
233 tar xvzf lxoffice-erp-2.6.2.tgz'
234
235    Verändern Sie evtl. noch den Namen des Verzeichnisses mit
236
237    `mv lxoffice-erp/ lx-erp/'
238
239    Alternativ können Sie auch einen Alias in der Webserverkonfiguration
240 benutzen, um auf das tatsächliche Installationsverzeichnis zu verweisen.
241
242    Die Verzeichnisse `users', `spool' und `webdav' müssen für den
243 Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
244 restlichen Dateien müssen für diesen Benutzer lesbar sein. Der
245 Benutzername ist bei verschiedenen Distributionen unterschiedlich (z.B.
246 bei Debian/Ubuntu `www-data', bei Fedora core `apache' oder bei
247 OpenSuSE `wwwrun').
248
249    Der folgende Befehl ändert den Besitzer für die oben genannten
250 Verzeichnisse auf einem Debian/Ubuntu-System:
251
252    `chown -R www-data lx-office-erp/users lx-office-erp/spool
253 lx-office-erp/webdav'
254
255    Weiterhin muss der Webserver-Benutzer im Verzeichnis `templates'
256 Verzeichnisse für jeden neuen Benutzer, der in lx-office angelegt wird,
257 anlegen dürfen:
258
259    `chgrp www-data lx-office-erp/templates; chmod g+w
260 lx-office-erp/templates'
261
262 4 Anpassung der PostgreSQL-Konfiguration
263 ****************************************
264
265 PostgreSQL muss auf verschiedene Weisen angepasst werden.
266
267 4.1 Zeichensätze/die Verwendung von UTF-8
268 ==========================================
269
270 Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet werden.
271 Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in Version 8.0
272 oder neuer benutzt werden, und der PostgreSQL-Datenbankcluster muss
273 ebenfalls mit UTF-8 als Locale angelegt worden sein.
274
275    Dieses ist kann überprüft werden: ist das Encoding der Datenbank
276 "template1" "UTF8", so kann auch Lx-Office mit UTF-8 betrieben werden.
277 Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
278 UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
279 Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:
280
281    `pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2
282 clustername'
283
284    Die Datenbankversionsnummer muss an die tatsächlich verwendete
285 Versionsnummer angepasst werden.
286
287    Unter anderen Distributionen gibt es ähnliche Methoden.
288
289    Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und ist
290 ein Neuanlegen eines weiteren Clusters nicht möglich, so kann Lx-Office
291 mit ISO-8859-15 als Encoding betrieben werden.
292
293    Das Encoding einer Datenbank kann in `psql' mit `\l' geprüft werden.
294
295 4.2 Änderungen an Konfigurationsdateien
296 ========================================
297
298 In der Datei `postgresql.conf', die je nach Distribution in
299 verschiedenen Verzeichnissen liegen kann (z.B. `/var/lib/pgsql/data/'
300 oder `/etc/postgresql/', muss sichergestellt werden, dass
301 TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
302 Parameter `listen_address' gesteuert. Laufen PostgreSQL und Lx-Office
303 auf demselben Rechner, so kann dort der Wert `localhost' verwendet
304 werden. Andernfalls müssen Datenbankverbindungen auch von anderen
305 Rechnern aus zugelassen werden, was mit dem Wert \`*' geschieht.
306
307    In der Datei `pg_hba.conf', die im gleichen Verzeichnis wie die
308 `postgresql.conf' zu finden sein sollte, müssen die Berichtigungen für
309 den Zugriff geändert werden. Hier gibt es mehrere Möglichkeiten. Eine
310 besteht darin, lokale Verbindungen immer zuzulassen
311
312    `local all all trust
313 host all all 127.0.0.1 255.0.0.0 trust'
314
315    Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
316 zuzulassen. Beispielsweise:
317
318    `local   all         lxoffice
319   password
320 host    all         lxoffice      127.0.0.1         255.255.255.255
321 password'
322
323 4.3 Erweiterung für servergespeicherte Prozeduren
324 ==================================================
325
326 In der Datenbank `template1' muss die Unterstützung für
327 servergespeicherte Prozeduren eingerichet werden. Melden Sie sich dafür
328 als Benutzer "postgres" an der Datenbank an, und führen Sie die
329 folgenden Kommandos aus:
330
331    `create language 'plpgsql';'
332
333    Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler für
334 die Sprache manuell anlelegt werden, diese Versionen werden aber nicht
335 mehr offiziell von Lx-Office unterstützt. Dafür dann die folgenden
336 Kommandos:
337
338    `create function plpgsql_call_handler () returns opaque as
339 '/usr/lib/pgsql/plpgsql.so' language 'c';
340 create language 'plpgsql' handler plpgsql_call_handler lancompiler
341 'pl/pgsql';'
342
343    Bitte beachten Sie, dass der Pfad zur Datei `plpgsql.so' von
344 Distribution zu Distribution verschiedlich sein kann. Bei Debian/Ubuntu
345 befindet sie sich unter `/usr/lib/postgresql/lib/plpgsql.so'.
346
347 4.4 Datenbankbenutzer anlegen
348 =============================
349
350 Wenn Sie nicht den Datenbanksuperuser "postgres" zum Zugriff benutzen
351 wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer anlegen. Ein
352 Beispiel, wie Sie einen neuen Benutzer anlegen können:
353
354    `su - postgres
355 createuser -d -P lxoffice'
356
357    Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
358 den evtl. voreingestellten Benutzer "postgres" auf "lxoffice" bzw. den
359 hier gewählten Benutzernamen.
360
361 5 Apache-Konfiguration
362 **********************
363
364 Hinweis: Für einen deutlichen Performanceschub sorgt die Ausführung
365 mittels FCGI. Die Einrichtung wird ausführlich in der Datei
366 `INSTALL.fcgi' beschrieben.
367
368    Der Zugriff auf das Programmverzeichnis muss in der Apache
369 Webserverkonfigurationsdatei `httpd.conf' eingestellt werden. Fügen Sie
370 den folgenden Abschnitt dieser Datei oder einer anderen Datei hinzu,
371 die beim Starten des Webservers eingelesen wird:
372
373    `
374 AddHandler cgi-script .pl
375 Alias /lx-erp/ /var/www/lx-erp/
376 <Directory /var/www/lx-erp>
377 Options ExecCGI Includes FollowSymlinks
378 </Directory>
379 <Directory /var/www/lx-erp/users>
380 Order Deny,Allow
381 Deny from All
382 </Directory>
383 '
384
385    Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
386 Lx-Office-Archiv entpacket haben.
387
388    Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen
389 ein Plus `+' gesetzt werden.
390
391    Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
392 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die folgende
393 Option in die Konfiguration aufzunehmen:
394
395    `EnableSendfile Off'
396
397 6 Der Task-Server
398 *****************
399
400 Der Task-Server ist ein Dämonen, der im Hintergrund läuft, in
401 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu
402 festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Dämon
403 wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen
404 benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen
405 bekommen.
406
407 6.1 Verfügbare und notwendige Konfigurationsoptionen
408 =====================================================
409
410 Die Konfiguration erfolgt über den Abschnitt `[task_server]' in der
411 Datei `config/lx_office.conf'. Die dort verfügbaren Optionen sind:
412
413    * `login': Benutzername, der benutzt wird, um die zu verwendende
414      Datenbankverbindung auszulesen. Der Benutzer muss in der
415      Administration angelegt werden. Diese Option muss angegeben werden.
416
417    * `run_as': Wird der Server von `root' gestartet, so wechselt er auf
418      diesen Systembenutzer. Der Systembenutzer muss dieselben Lese- und
419      Schreibrechte haben, wie auch der Webserverbenutzer (siehe *note
420      Manuelle Installation des Programmpaketes::). Daher ist es
421      sinnvoll, hier denselben Systembenutzer einzutragen, unter dem
422      auch der Webserver läuft.
423
424    * `debug': Schaltet Debug-Informationen an und aus.
425
426 6.2 Automatisches Starten des Task-Servers beim Booten
427 ======================================================
428
429 Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
430 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
431 automatisch in das Lx-Office-Installationsverzeichnis.
432
433    Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
434 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
435 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
436 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
437 anstelle eines symbolischen Links verwendet werden können.
438
439 6.2.1 SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
440 ---------------------------------------------------------------------
441
442 Kopieren Sie die Datei `scripts/boot/system-v/lx-office-task-server'
443 nach `/etc/init.d/lx-office-task-server'. Passen Sie in der kopierten
444 Datei den Pfad zum Task-Server an (Zeile `DAEMON=....'). Binden Sie das
445 Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
446
447    * Debian-basierende Systeme:
448      `update-rc.d lx-office-task-server defaults
449      # Nur bei Debian Squeeze und neuer:
450      insserv lx-office-task-server'
451
452    * OpenSuSE und Fedora Core:
453      `chkconfig --add lx-office-task-server'
454
455    Danach kann der Task-Server mit dem folgenden Befehl gestartet
456 werden: `/etc/init.d/lx-office-task-server start'
457
458 6.2.2 Upstart-basierende Systeme (z.B. Ubuntu)
459 ----------------------------------------------
460
461 Kopieren Sie die Datei
462 `scripts/boot/upstart/lx-office-task-server.conf' nach
463 `/etc/init/lx-office-task-server.conf'. Passen Sie in der kopierten
464 Datei den Pfad zum Task-Server an (Zeile `exec ....').
465
466    Danach kann der Task-Server mit dem folgenden Befehl gestartet
467 werden: `service lx-office-task-server start'
468
469 6.3 Wie der Task-Server gestartet und beendet wird
470 ==================================================
471
472 Der Task-Server wird wie folgt kontrolliert:
473
474    `./scripts/task_server.pl Befehl'
475
476    `Befehl' ist dabei eine der folgenden Optionen:
477
478    * `start' startet eine neue Instanz des Task-Servers. Die Prozess-ID
479      wird innerhalb des `users'-Verzeichnisses abgelegt.
480
481    * `stop' beendet einen laufenden Task-Server.
482
483    * `restart' beendet und startet ihn neu.
484
485    * `status' berichtet, ob der Task-Server läuft.
486
487    Der Task-Server wechselt beim Starten automatisch in das
488 Lx-Office-Installationsverzeichnis.
489
490    Dieselben Optionen können auch für die SystemV-basierenden
491 Runlevel-Scripte benutzt werden (siehe oben).
492
493 7 Benutzerauthentifizierung und Administratorpasswort
494 *****************************************************
495
496 Informationen über die Einrichtung der Benutzerauthentifizierung, über
497 die Verwaltung von Gruppen und weitere Einstellungen
498
499 7.1 Grundlagen zur Benutzerauthentifizierung
500 ============================================
501
502 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
503 im folgenden "Authentifizierungsdatenbank" genannt wird. Für jeden
504 Benutzer kann dort eine eigene Datenbank für die eigentlichen
505 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
506 aber nicht unterschiedlich sein.
507
508    Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
509 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
510 werden.
511
512    Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
513 entweder gegen die Authentifizierungsdatenbank oder gegen einen
514 LDAP-Server überprüft werden.
515
516    Welche Art der Passwortüberprüfung Lx-Office benutzt und wie
517 Lx-Office die Authentifizierungsdatenbank erreichen kann, wird in der
518 Konfigurationsdatei `config/lx_office.conf' festgelegt. Diese muss bei
519 der Installation und bei einem Upgrade von einer Version vor v2.6.0
520 angelegt werden. Eine Beispielkonfigurationsdatei
521 `config/lx_office.conf.default' existiert, die als Vorlage benutzt
522 werden kann.
523
524 7.2 Administratorpasswort
525 =========================
526
527 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt
528 wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort
529 und nicht mehr im Administrationsinterface selber geändert werden. Der
530 Parameter dazu heißt `$self->{admin_password}'.
531
532 7.3 Authentifizierungsdatenbank
533 ===============================
534
535 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
536 in `$self->{DB_config}' konfiguriert. Hier sind die folgenden Parameter
537 anzugeben:
538
539    * `host' - Der Rechnername oder die IP-Adresse des Datenbankservers
540
541    * `port' - Die Portnummer des Datenbankservers, meist 5432
542
543    * `db' - Der Name der Authentifizierungsdatenbank
544
545    * `user' - Der Benutzername, mit dem sich Lx-Office beim
546      Datenbankserver anmeldet (z.B. "postgres")
547
548    * `password' - Das Passwort für den Datenbankbenutzer
549
550    Die Datenbank muss noch nicht existieren. Lx-Office kann sie
551 automatisch anlegen (mehr dazu siehe unten).
552
553 7.4 Passwortüberprüfung
554 =========================
555
556 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
557 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
558 Active-Directory-Server. Welche davon benutzt wird, regelt der
559 Parameter `$self->{module}'.
560
561    Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
562 gespeichert werden, so muss der Parameter `$self->{module}' den Wert
563 `DB' enthalten. In diesem Fall können sowohl der Administrator als auch
564 die Benutzer selber ihre Psaswörter in Lx-Office ändern.
565
566    Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
567 werden, so muss der Parameter `$self->{module}' auf `LDAP' gesetzt
568 werden. In diesem Fall müssen zusätzliche Informationen über den
569 LDAP-Server in `$self->{LDAP_config}' angegeben werden:
570
571    * `host' - Der Rechnername oder die IP-Adresse des LDAP- oder
572      Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
573
574    * `port' - Die Portnummer des LDAP-Servers; meist 389.
575
576    * `tls' - Wenn Verbindungsverschlüsselung gewünscht ist, so diesen
577      Wert auf `1' setzen, andernfalls auf `0' belassen
578
579    * `attribute' - Das LDAP-Attribut, in dem der Benutzername steht,
580      den der Benutzer eingegeben hat. Für Active-Directory-Server   ist
581      dies meist `sAMAccountName', für andere LDAP-Server hingegen
582      `uid'. Diese Angabe ist zwingend erforderlich.
583
584    * `base_dn' - Der Abschnitt des LDAP-Baumes, der durchsucht werden
585      soll. Diese Angabe ist zwingend erforderlich.
586
587    * `filter' - Ein optionaler LDAP-Filter. Enthält dieser Filter das
588      Wort `<%login%>', so wird dieses durch den vom Benutzer
589      eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum
590      nach einem Element durchsucht, bei dem das oben angegebene Attribut
591       mit dem Benutzernamen identisch ist.
592
593    * `bind_dn' und `bind_password' - Wenn der LDAP-Server eine
594      Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist
595      dies bei   Active-Directory-Servern der Fall), so kann diese hier
596      angegeben werden. Für Active-Directory-Server kann als `bind_dn'
597      entweder eine   komplette LDAP-DN wie z.B. `cn=Martin
598      Mustermann,cn=Users,dc=firmendomain' auch nur der volle Name des
599      Benutzers   eingegeben werden; in diesem Beispiel also `Martin
600      Mustermann'.
601
602 7.5 Name des Session-Cookies
603 ============================
604
605 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
606 werden, so müssen die Namen der Session-Cookies für alle Installationen
607 unterschiedlich sein. Der Name des Cookies wird mit dem Parameter
608 `$self->{cookie_name}' gesetzt.
609
610    Diese Angabe ist optional, wenn nur eine Installation auf dem Server
611 existiert.
612
613 7.6 Anlegen der Authentifizierungsdatenbank
614 ===========================================
615
616 Nachdem alle Einstellungen in `config/lx_office.conf' vorgenommen
617 wurden, muss Lx-Office die Authentifizierungsdatenbank anlegen. Dieses
618 geschieht automatisch, wenn Sie sich im Administrationsmodul anmelden,
619 das unter der folgenden URL erreichbar sein sollte:
620
621    `http://localhost/lx-erp/admin.pl'
622
623 8 Benutzer- und Gruppenverwaltung
624 *********************************
625
626 Nach der Installation müssen Benutzer, Gruppen und Datenbanken angelegt
627 werden.  Dieses geschieht im Administrationsmenü, das Sie unter
628 folgender URL finden:
629
630    `http://localhost/lx-erp/admin.pl'
631
632    Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
633 `config/lx_office.conf' eingetragen haben.
634
635 8.1 Zusammenhänge
636 ==================
637
638 Lx-Office verwendet eine Datenbank zum Speichern all seiner
639 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
640 mit Lx-Office arbeiten zu können, muss eine Person einen
641 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
642 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
643 möglich und normal, dass mehreren Benutzern die selbe Datenbank
644 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
645
646    Die Basisdaten der Benutzer, die in der Administration eingegeben
647 werden können, werden in einer zweiten Datenbank gespeichert, der
648 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
649 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
650 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
651 aber beliebig viele Datenbanken mit Firmendaten.
652
653    Lx-Office kann seinen Benutzern Zugriff auf bestimmte
654 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
655 gestattet, so werden der entsprechenden Menüpunkte auch nicht
656 angezeigt. Diese Rechte werden ebenfalls in der
657 Authentifizierungsdatenbank gespeichert.
658
659    Um Rechte verteilen zu können, verwendet Lx-Office ein
660 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
661 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
662 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
663 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
664 Benutzer Mitglied ist.
665
666    Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
667 angelegt werden sollten, lautet:
668
669   1. Datenbank anlegen
670
671   2. Gruppen anlegen
672
673   3. Benutzer anlegen
674
675   4. Benutzer den Gruppen zuordnen
676
677 8.2 Datenbanken anlegen
678 =======================
679
680 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
681 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
682 ist dies `lxoffice').
683
684    Wenn Sie für die Lx-Office-Installation nicht den europäischen
685 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
686 müssen Sie vor dem Anlegen der Datenbank in der Datei
687 `config/lx_office.conf' die Variable `dbcharset' im Abschnitt `system'
688 auf den Wert `UTF-8' setzen. Zusätzlich muss beim Anlegen der Datenbank
689 `UTF-8 Unicode' als Schriftsatz ausgewählt werden.
690
691    Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
692 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
693 vorgenommen wird und nicht nach Datenbank unterschieden werden kann.
694 Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
695 angelegt worden sein.
696
697 8.3 Gruppen anlegen
698 ===================
699
700 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
701 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
702 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
703 Mitglieder dieser Gruppe Zugriff haben sollen.
704
705    Benutzergruppen sind unabhängig von Datenbanken, da sie in der
706 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
707 Datenbanken, die in dieser Installation verwaltet werden.
708
709 8.4 Benutzer anlegen
710 ====================
711
712 Beim Anlegen von Benutzern werden für viele Parameter
713 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
714 deutschen Raumes entsprechen.
715
716    Zwingend anzugeben sind der Loginname sowie die komplette
717 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
718 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
719 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
720 aktiv, so ist das Passwort-Feld deaktiviert.
721
722    In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
723 angelegten Datenbanken eingetragen werden.
724
725 8.5 Gruppenmitgliedschaften verwalten
726 =====================================
727
728 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
729 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
730
731   1. In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
732      Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
733
734   2. In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
735      Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
736      System angelegten Gruppen und Benutzer enthält. Durch Setzen der
737      Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in
738      der ausgewählten Spalte hinzugefügt.
739
740 8.6 Migration alter Installationen
741 ==================================
742
743 Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
744 die Benutzerdaten noch im Dateisystem im Verzeichnis `users' verwaltet
745 wurden, so bietet Lx-Office die Möglichkeit, diese Benutzerdaten
746 automatisch in die Authentifizierungsdatenbank zu übernehmen. Dies
747 geschieht, wenn man sich nach dem Update der Installation das erste Mal
748 im Administrationsbereich anmeldet. Findet Lx-Office die Datei
749 `users/members', so wird der Migrationsprozess gestartet.
750
751    Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
752 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
753 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt wird.
754 Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office gewährt.
755 Alle migrierten Benutzern werden Mitglied in dieser Gruppe. Damit wird
756 das Verhalten von Lx-Office bis Version 2.4.3 inklusive
757 wiederhergestellt, und die Benutzer können sich sofort wieder anmelden
758 und mit dem System arbeiten.
759
760 9 OpenDocument-Vorlagen
761 ***********************
762
763 Lx-Office unterstützt die Verwendung von Vorlagen im
764 OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt.
765 Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als auch aus
766 diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
767 OpenDocument-Vorlagen zu aktivieren muss in der Datei
768 `config/lx_office.conf' die Variable `opendocument' im Abschnitt
769 `print_templates' auf `1' stehen.  Dieses ist die Standardeinstellung.
770
771    Weiterhin muss in der Datei `config/lx_office.conf' die Variable
772 `dbcharset' im Abschnitt `system' auf die Zeichenkodierung gesetzt
773 werden, die auch bei der Speicherung der Daten in der Datenbank
774 verwendet wird. Diese ist in den meisten Fällen "UTF-8".
775
776    Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
777 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
778 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
779 neben OpenOffice.org ab Version 2 auch der "X virtual frame buffer"
780 (xvfb) installiert werden.  Bei Debian ist er im Paket "xvfb"
781 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
782
783    Nach der Installation müssen in der Datei `config/lx_config.conf'
784 zwei weitere Variablen angepasst werden: `openofficeorg_writer' muss
785 den vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten.
786 `xvfb' muss den Pfad zum "X virtual frame buffer" enthalten. Beide
787 stehen im Abschnitt `applications'.
788
789    Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
790 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn die
791 Variable `$openofficeorg_daemon' gesetzt ist, startet ein OpenOffice,
792 das auch nach der Umwandlung des Dokumentes gestartet bleibt. Bei
793 weiteren Umwandlungen wird dann diese laufende Instanz benutzt. Der
794 Vorteil ist, dass die Zeit zur Umwandlung deutlich reduziert wird, weil
795 nicht für jedes Dokument ein OpenOffice gestartet werden muss. Der
796 Nachteil ist, dass diese Methode Python und die Python-UNO-Bindings
797 benötigt, die Bestandteil von OpenOffice 2 sind.
798
799    Ist `$openofficeorg_daemon' nicht gesetzt, so wird für jedes
800 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines
801 Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
802 enthalten sein und "Standard.Conversion.ConvertSelfToPDF()" heißen. Die
803 Beispielvorlage `templates/German-invoice.odt' enthält ein solches
804 Makro, das in jeder anderen Dokumentenvorlage ebenfalls enthalten sein
805 muss.
806
807    Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
808 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter Debian
809 ist dies momentan `~/.openoffice.org2'. Sollte der Name bei Ihrer
810 OpenOffice.org-Installation anders sein, so muss das Verzeichnis
811 `users/.openoffice.org2' entsprechend umbenannt werden. Ist der Name
812 z.B. einfach nur `.openoffice', so wäre folgender Befehl auszuführen:
813
814    `mv users/.openoffice.org2 users/.openoffice'
815
816    Dieses Verzeichnis, wie auch das komplette `users'-Verzeichnis, muss
817 vom Webserver beschreibbar sein. Dieses wurde bereits erledigt (*note
818 Manuelle Installation des Programmpaketes::), kann aber erneut überprüft
819 werden, wenn die Konvertierung nach PDF fehlschlägt.
820
821 10 Lx-Office ERP verwenden
822 **************************
823
824 Nach erfolgreicher Installation ist der Loginbildschirm unter folgender
825 URL erreichbar:
826
827    `http://localhost/lx-office-erp/login.pl'
828
829    Die Administrationsseite erreichen Sie unter:
830
831    `http://localhost/lx-office-erp/admin.pl'
832
833
834 \1f
835 Local Variables:
836 coding: utf-8
837 End: