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