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