8061ac754479a127734900618d7c7cbbe5091dff
[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 Prozess, 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 Prozess
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': gültiger Lx-Office-Benutzername, der benutzt wird, um die
414      zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss
415      in der Administration angelegt werden. Diese Option muss angegeben
416      werden.
417
418    * `run_as': Wird der Server vom Systembenutzer `root' gestartet, so
419      wechselt er auf den mit `run_as' angegebenen Systembenutzer. Der
420      Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie
421      auch der Webserverbenutzer (siehe *note Manuelle Installation des
422      Programmpaketes::). Daher ist es sinnvoll, hier denselben
423      Systembenutzer einzutragen, unter dem auch der Webserver läuft.
424
425    * `debug': Schaltet Debug-Informationen an und aus.
426
427 6.2 Automatisches Starten des Task-Servers beim Booten
428 ======================================================
429
430 Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
431 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
432 automatisch in das Lx-Office-Installationsverzeichnis.
433
434    Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
435 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
436 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
437 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
438 anstelle eines symbolischen Links verwendet werden können.
439
440 6.2.1 SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
441 ---------------------------------------------------------------------
442
443 Kopieren Sie die Datei `scripts/boot/system-v/lx-office-task-server'
444 nach `/etc/init.d/lx-office-task-server'. Passen Sie in der kopierten
445 Datei den Pfad zum Task-Server an (Zeile `DAEMON=....'). Binden Sie das
446 Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
447
448    * Debian-basierende Systeme:
449      `update-rc.d lx-office-task-server defaults
450      # Nur bei Debian Squeeze und neuer:
451      insserv lx-office-task-server'
452
453    * OpenSuSE und Fedora Core:
454      `chkconfig --add lx-office-task-server'
455
456    Danach kann der Task-Server mit dem folgenden Befehl gestartet
457 werden: `/etc/init.d/lx-office-task-server start'
458
459 6.2.2 Upstart-basierende Systeme (z.B. Ubuntu)
460 ----------------------------------------------
461
462 Kopieren Sie die Datei
463 `scripts/boot/upstart/lx-office-task-server.conf' nach
464 `/etc/init/lx-office-task-server.conf'. Passen Sie in der kopierten
465 Datei den Pfad zum Task-Server an (Zeile `exec ....').
466
467    Danach kann der Task-Server mit dem folgenden Befehl gestartet
468 werden: `service lx-office-task-server start'
469
470 6.3 Wie der Task-Server gestartet und beendet wird
471 ==================================================
472
473 Der Task-Server wird wie folgt kontrolliert:
474
475    `./scripts/task_server.pl Befehl'
476
477    `Befehl' ist dabei eine der folgenden Optionen:
478
479    * `start' startet eine neue Instanz des Task-Servers. Die Prozess-ID
480      wird innerhalb des `users'-Verzeichnisses abgelegt.
481
482    * `stop' beendet einen laufenden Task-Server.
483
484    * `restart' beendet und startet ihn neu.
485
486    * `status' berichtet, ob der Task-Server läuft.
487
488    Der Task-Server wechselt beim Starten automatisch in das
489 Lx-Office-Installationsverzeichnis.
490
491    Dieselben Optionen können auch für die SystemV-basierenden
492 Runlevel-Scripte benutzt werden (siehe oben).
493
494 7 Benutzerauthentifizierung und Administratorpasswort
495 *****************************************************
496
497 Informationen über die Einrichtung der Benutzerauthentifizierung, über
498 die Verwaltung von Gruppen und weitere Einstellungen
499
500 7.1 Grundlagen zur Benutzerauthentifizierung
501 ============================================
502
503 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
504 im folgenden "Authentifizierungsdatenbank" genannt wird. Für jeden
505 Benutzer kann dort eine eigene Datenbank für die eigentlichen
506 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
507 aber nicht unterschiedlich sein.
508
509    Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
510 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
511 werden.
512
513    Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
514 entweder gegen die Authentifizierungsdatenbank oder gegen einen
515 LDAP-Server überprüft werden.
516
517    Welche Art der Passwortüberprüfung Lx-Office benutzt und wie
518 Lx-Office die Authentifizierungsdatenbank erreichen kann, wird in der
519 Konfigurationsdatei `config/lx_office.conf' festgelegt. Diese muss bei
520 der Installation und bei einem Upgrade von einer Version vor v2.6.0
521 angelegt werden. Eine Beispielkonfigurationsdatei
522 `config/lx_office.conf.default' existiert, die als Vorlage benutzt
523 werden kann.
524
525 7.2 Administratorpasswort
526 =========================
527
528 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt
529 wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort
530 und nicht mehr im Administrationsinterface selber geändert werden. Der
531 Parameter dazu heißt `$self->{admin_password}'.
532
533 7.3 Authentifizierungsdatenbank
534 ===============================
535
536 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
537 in `$self->{DB_config}' konfiguriert. Hier sind die folgenden Parameter
538 anzugeben:
539
540    * `host' - Der Rechnername oder die IP-Adresse des Datenbankservers
541
542    * `port' - Die Portnummer des Datenbankservers, meist 5432
543
544    * `db' - Der Name der Authentifizierungsdatenbank
545
546    * `user' - Der Benutzername, mit dem sich Lx-Office beim
547      Datenbankserver anmeldet (z.B. "postgres")
548
549    * `password' - Das Passwort für den Datenbankbenutzer
550
551    Die Datenbank muss noch nicht existieren. Lx-Office kann sie
552 automatisch anlegen (mehr dazu siehe unten).
553
554 7.4 Passwortüberprüfung
555 =========================
556
557 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
558 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
559 Active-Directory-Server. Welche davon benutzt wird, regelt der
560 Parameter `$self->{module}'.
561
562    Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
563 gespeichert werden, so muss der Parameter `$self->{module}' den Wert
564 `DB' enthalten. In diesem Fall können sowohl der Administrator als auch
565 die Benutzer selber ihre Psaswörter in Lx-Office ändern.
566
567    Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
568 werden, so muss der Parameter `$self->{module}' auf `LDAP' gesetzt
569 werden. In diesem Fall müssen zusätzliche Informationen über den
570 LDAP-Server in `$self->{LDAP_config}' angegeben werden:
571
572    * `host' - Der Rechnername oder die IP-Adresse des LDAP- oder
573      Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
574
575    * `port' - Die Portnummer des LDAP-Servers; meist 389.
576
577    * `tls' - Wenn Verbindungsverschlüsselung gewünscht ist, so diesen
578      Wert auf `1' setzen, andernfalls auf `0' belassen
579
580    * `attribute' - Das LDAP-Attribut, in dem der Benutzername steht,
581      den der Benutzer eingegeben hat. Für Active-Directory-Server   ist
582      dies meist `sAMAccountName', für andere LDAP-Server hingegen
583      `uid'. Diese Angabe ist zwingend erforderlich.
584
585    * `base_dn' - Der Abschnitt des LDAP-Baumes, der durchsucht werden
586      soll. Diese Angabe ist zwingend erforderlich.
587
588    * `filter' - Ein optionaler LDAP-Filter. Enthält dieser Filter das
589      Wort `<%login%>', so wird dieses durch den vom Benutzer
590      eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum
591      nach einem Element durchsucht, bei dem das oben angegebene Attribut
592       mit dem Benutzernamen identisch ist.
593
594    * `bind_dn' und `bind_password' - Wenn der LDAP-Server eine
595      Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist
596      dies bei   Active-Directory-Servern der Fall), so kann diese hier
597      angegeben werden. Für Active-Directory-Server kann als `bind_dn'
598      entweder eine   komplette LDAP-DN wie z.B. `cn=Martin
599      Mustermann,cn=Users,dc=firmendomain' auch nur der volle Name des
600      Benutzers   eingegeben werden; in diesem Beispiel also `Martin
601      Mustermann'.
602
603 7.5 Name des Session-Cookies
604 ============================
605
606 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
607 werden, so müssen die Namen der Session-Cookies für alle Installationen
608 unterschiedlich sein. Der Name des Cookies wird mit dem Parameter
609 `$self->{cookie_name}' gesetzt.
610
611    Diese Angabe ist optional, wenn nur eine Installation auf dem Server
612 existiert.
613
614 7.6 Anlegen der Authentifizierungsdatenbank
615 ===========================================
616
617 Nachdem alle Einstellungen in `config/lx_office.conf' vorgenommen
618 wurden, muss Lx-Office die Authentifizierungsdatenbank anlegen. Dieses
619 geschieht automatisch, wenn Sie sich im Administrationsmodul anmelden,
620 das unter der folgenden URL erreichbar sein sollte:
621
622    `http://localhost/lx-erp/admin.pl'
623
624 8 Benutzer- und Gruppenverwaltung
625 *********************************
626
627 Nach der Installation müssen Benutzer, Gruppen und Datenbanken angelegt
628 werden.  Dieses geschieht im Administrationsmenü, das Sie unter
629 folgender URL finden:
630
631    `http://localhost/lx-erp/admin.pl'
632
633    Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
634 `config/lx_office.conf' eingetragen haben.
635
636 8.1 Zusammenhänge
637 ==================
638
639 Lx-Office verwendet eine Datenbank zum Speichern all seiner
640 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
641 mit Lx-Office arbeiten zu können, muss eine Person einen
642 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
643 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
644 möglich und normal, dass mehreren Benutzern die selbe Datenbank
645 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
646
647    Die Basisdaten der Benutzer, die in der Administration eingegeben
648 werden können, werden in einer zweiten Datenbank gespeichert, der
649 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
650 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
651 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
652 aber beliebig viele Datenbanken mit Firmendaten.
653
654    Lx-Office kann seinen Benutzern Zugriff auf bestimmte
655 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
656 gestattet, so werden der entsprechenden Menüpunkte auch nicht
657 angezeigt. Diese Rechte werden ebenfalls in der
658 Authentifizierungsdatenbank gespeichert.
659
660    Um Rechte verteilen zu können, verwendet Lx-Office ein
661 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
662 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
663 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
664 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
665 Benutzer Mitglied ist.
666
667    Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
668 angelegt werden sollten, lautet:
669
670   1. Datenbank anlegen
671
672   2. Gruppen anlegen
673
674   3. Benutzer anlegen
675
676   4. Benutzer den Gruppen zuordnen
677
678 8.2 Datenbanken anlegen
679 =======================
680
681 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
682 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
683 ist dies `lxoffice').
684
685    Wenn Sie für die Lx-Office-Installation nicht den europäischen
686 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
687 müssen Sie vor dem Anlegen der Datenbank in der Datei
688 `config/lx_office.conf' die Variable `dbcharset' im Abschnitt `system'
689 auf den Wert `UTF-8' setzen. Zusätzlich muss beim Anlegen der Datenbank
690 `UTF-8 Unicode' als Schriftsatz ausgewählt werden.
691
692    Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
693 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
694 vorgenommen wird und nicht nach Datenbank unterschieden werden kann.
695 Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
696 angelegt worden sein.
697
698 8.3 Gruppen anlegen
699 ===================
700
701 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
702 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
703 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
704 Mitglieder dieser Gruppe Zugriff haben sollen.
705
706    Benutzergruppen sind unabhängig von Datenbanken, da sie in der
707 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
708 Datenbanken, die in dieser Installation verwaltet werden.
709
710 8.4 Benutzer anlegen
711 ====================
712
713 Beim Anlegen von Benutzern werden für viele Parameter
714 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
715 deutschen Raumes entsprechen.
716
717    Zwingend anzugeben sind der Loginname sowie die komplette
718 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
719 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
720 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
721 aktiv, so ist das Passwort-Feld deaktiviert.
722
723    In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
724 angelegten Datenbanken eingetragen werden.
725
726 8.5 Gruppenmitgliedschaften verwalten
727 =====================================
728
729 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
730 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
731
732   1. In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
733      Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
734
735   2. In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
736      Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
737      System angelegten Gruppen und Benutzer enthält. Durch Setzen der
738      Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in
739      der ausgewählten Spalte hinzugefügt.
740
741 8.6 Migration alter Installationen
742 ==================================
743
744 Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
745 die Benutzerdaten noch im Dateisystem im Verzeichnis `users' verwaltet
746 wurden, so bietet Lx-Office die Möglichkeit, diese Benutzerdaten
747 automatisch in die Authentifizierungsdatenbank zu übernehmen. Dies
748 geschieht, wenn man sich nach dem Update der Installation das erste Mal
749 im Administrationsbereich anmeldet. Findet Lx-Office die Datei
750 `users/members', so wird der Migrationsprozess gestartet.
751
752    Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
753 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
754 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt wird.
755 Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office gewährt.
756 Alle migrierten Benutzern werden Mitglied in dieser Gruppe. Damit wird
757 das Verhalten von Lx-Office bis Version 2.4.3 inklusive
758 wiederhergestellt, und die Benutzer können sich sofort wieder anmelden
759 und mit dem System arbeiten.
760
761 9 OpenDocument-Vorlagen
762 ***********************
763
764 Lx-Office unterstützt die Verwendung von Vorlagen im
765 OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt.
766 Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als auch aus
767 diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
768 OpenDocument-Vorlagen zu aktivieren muss in der Datei
769 `config/lx_office.conf' die Variable `opendocument' im Abschnitt
770 `print_templates' auf `1' stehen.  Dieses ist die Standardeinstellung.
771
772    Weiterhin muss in der Datei `config/lx_office.conf' die Variable
773 `dbcharset' im Abschnitt `system' auf die Zeichenkodierung gesetzt
774 werden, die auch bei der Speicherung der Daten in der Datenbank
775 verwendet wird. Diese ist in den meisten Fällen "UTF-8".
776
777    Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
778 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
779 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
780 neben OpenOffice.org ab Version 2 auch der "X virtual frame buffer"
781 (xvfb) installiert werden.  Bei Debian ist er im Paket "xvfb"
782 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
783
784    Nach der Installation müssen in der Datei `config/lx_config.conf'
785 zwei weitere Variablen angepasst werden: `openofficeorg_writer' muss
786 den vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten.
787 `xvfb' muss den Pfad zum "X virtual frame buffer" enthalten. Beide
788 stehen im Abschnitt `applications'.
789
790    Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
791 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn die
792 Variable `$openofficeorg_daemon' gesetzt ist, startet ein OpenOffice,
793 das auch nach der Umwandlung des Dokumentes gestartet bleibt. Bei
794 weiteren Umwandlungen wird dann diese laufende Instanz benutzt. Der
795 Vorteil ist, dass die Zeit zur Umwandlung deutlich reduziert wird, weil
796 nicht für jedes Dokument ein OpenOffice gestartet werden muss. Der
797 Nachteil ist, dass diese Methode Python und die Python-UNO-Bindings
798 benötigt, die Bestandteil von OpenOffice 2 sind.
799
800    Ist `$openofficeorg_daemon' nicht gesetzt, so wird für jedes
801 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines
802 Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
803 enthalten sein und "Standard.Conversion.ConvertSelfToPDF()" heißen. Die
804 Beispielvorlage `templates/German-invoice.odt' enthält ein solches
805 Makro, das in jeder anderen Dokumentenvorlage ebenfalls enthalten sein
806 muss.
807
808    Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
809 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter Debian
810 ist dies momentan `~/.openoffice.org2'. Sollte der Name bei Ihrer
811 OpenOffice.org-Installation anders sein, so muss das Verzeichnis
812 `users/.openoffice.org2' entsprechend umbenannt werden. Ist der Name
813 z.B. einfach nur `.openoffice', so wäre folgender Befehl auszuführen:
814
815    `mv users/.openoffice.org2 users/.openoffice'
816
817    Dieses Verzeichnis, wie auch das komplette `users'-Verzeichnis, muss
818 vom Webserver beschreibbar sein. Dieses wurde bereits erledigt (*note
819 Manuelle Installation des Programmpaketes::), kann aber erneut überprüft
820 werden, wenn die Konvertierung nach PDF fehlschlägt.
821
822 10 Lx-Office ERP verwenden
823 **************************
824
825 Nach erfolgreicher Installation ist der Loginbildschirm unter folgender
826 URL erreichbar:
827
828    `http://localhost/lx-office-erp/login.pl'
829
830    Die Administrationsseite erreichen Sie unter:
831
832    `http://localhost/lx-office-erp/admin.pl'
833
834
835 \1f
836 Local Variables:
837 coding: utf-8
838 End: