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